From b4f59c226c6916a3e45f1a52dc6a9b15c800297a Mon Sep 17 00:00:00 2001 From: fx Date: Wed, 18 Oct 2023 15:11:44 +0200 Subject: basic cli, only start and get device --- src/main.rs | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/main.rs (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..d2f0c3a --- /dev/null +++ b/src/main.rs @@ -0,0 +1,60 @@ +use clap::{Parser, Subcommand}; +use config::SETTINGS; +use error::CliError; +use requests::{start::start, get::get}; +use reqwest::header::{HeaderMap, HeaderValue}; + +mod config; +mod error; +mod requests; + +/// webol http client +#[derive(Parser)] +#[command(author, version, about, long_about = None)] +struct Args { + #[command(subcommand)] + commands: Commands, +} + +#[derive(Subcommand)] +enum Commands { + Start { + /// id of the device + id: String + }, + Get { + id: String + } +} + +fn main() -> Result<(), CliError> { + let cli = Args::parse(); + + match cli.commands { + Commands::Start { id } => { + start(id)?; + }, + Commands::Get { id } => { + get(id)?; + } + } + + Ok(()) +} + +fn default_headers() -> Result { + let mut map = HeaderMap::new(); + map.append("Accept-Content", HeaderValue::from_str("application/json").unwrap()); + map.append("Content-Type", HeaderValue::from_str("application/json").unwrap()); + map.append( + "Authorization", + HeaderValue::from_str( + SETTINGS.get_string("key") + .map_err(CliError::Config)? + .as_str() + ).unwrap() + ); + + Ok(map) + +} -- cgit v1.2.3