diff --git a/src/cli/main.rs b/src/cli/main.rs index 50dcbd9..8ce3379 100644 --- a/src/cli/main.rs +++ b/src/cli/main.rs @@ -1,6 +1,12 @@ +use openadr::wire::program::ProgramContent; + #[tokio::main] async fn main() -> Result<(), Box> { - let client = openadr::Client::new("http://localhost/openadr/".try_into()?); + let client = openadr::Client::new("http://localhost:3000/".try_into()?); + let created_program = client.create_program(ProgramContent::new("name")).await?; + let created_program_1 = client.create_program(ProgramContent::new("name1")).await?; + dbg!(created_program); + dbg!(created_program_1); let _program = client.get_program_by_name("name").await?; // let events = program.get_all_events().await?; diff --git a/src/client.rs b/src/client.rs index 35a0828..6d3ec4a 100644 --- a/src/client.rs +++ b/src/client.rs @@ -10,6 +10,7 @@ pub struct Client { client_ref: Arc, } +#[derive(Debug)] pub struct ClientRef { client: reqwest::Client, base_url: url::Url, @@ -192,6 +193,7 @@ impl Client { } } +#[derive(Debug)] pub struct ProgramClient { client: Arc, data: Program, diff --git a/src/wire/program.rs b/src/wire/program.rs index 74bcd70..20ab8b7 100644 --- a/src/wire/program.rs +++ b/src/wire/program.rs @@ -92,6 +92,28 @@ pub struct ProgramContent { pub targets: Option, } +impl ProgramContent { + pub fn new(name: impl ToString) -> ProgramContent { + ProgramContent { + object_type: Default::default(), + program_name: name.to_string(), + program_long_name: Default::default(), + retailer_name: Default::default(), + retailer_long_name: Default::default(), + program_type: Default::default(), + country: Default::default(), + principal_subdivision: Default::default(), + time_zone_offset: Default::default(), + interval_period: Default::default(), + program_descriptions: Default::default(), + binding_events: Default::default(), + local_price: Default::default(), + payload_descriptors: Default::default(), + targets: Default::default(), + } + } +} + // TODO enforce constraints: // objectID: // type: string