update_task/
update_task.rs

1use lemonaid::CitraClient;
2use lemonaid::TaskStatus;
3use lemonaid::TaskUpdateRequest;
4use std::env;
5
6#[tokio::main]
7async fn main() {
8    // Get API key from environment variable
9    let api_key = env::var("CITRA_PAT")
10        .expect("CITRA_PAT environment variable not set");
11
12    // Create client
13    let client = CitraClient::new(&api_key);
14
15    // Get task ID from command line argument
16    let args: Vec<String> = env::args().collect();
17    if args.len() < 2 {
18        eprintln!("Usage: cargo run --example update_task <task_id>");
19        std::process::exit(1);
20    }
21    let task_id = &args[1];
22
23    // Test update_task
24    println!("Updating task: {}", task_id);
25    let update_request = TaskUpdateRequest {
26        id: task_id.to_string(),
27        status: TaskStatus::Canceled,
28        priority: Some(5),
29        scheduled_start: None,
30        scheduled_stop: None,
31    };
32    match client.update_task(&update_request).await {
33        Ok(updated_task) => {
34            println!("\n✓ Success!");
35            println!("{:#?}", updated_task);
36        }
37        Err(err) => {
38            eprintln!("\n✗ Error updating task: {}", err);
39        }
40    }
41}