use focusmate::FocusmateClient; use std::env; use time::OffsetDateTime; #[tokio::main] async fn main() { let api_key = match env::var("FOCUSMATE_API_KEY") { Ok(key) => key, Err(_) => { eprintln!("Please set FOCUSMATE_API_KEY environment variable"); eprintln!("Example: FOCUSMATE_API_KEY=your-key cargo run --example get_sessions"); std::process::exit(1); } }; let client = FocusmateClient::new(api_key); // Get profile match client.get_me().await { Ok(user) => println!("{user:#?}"), Err(e) => eprintln!("Error: {e:?}"), } // Get public profile of a user match client .get_user("6c267455-a530-4d4c-ba17-2e375932d976") .await { Ok(user) => println!("{user:#?}"), Err(e) => eprintln!("Error: {e:?}"), } // Get sessions for last month let start = OffsetDateTime::now_utc() - time::Duration::days(30); let end = OffsetDateTime::now_utc(); let sessions = client.get_sessions(&start, &end).await; match sessions { Ok(sessions) => { let n_sessions = sessions.iter().filter(|s| s.completed()).count(); println!("{n_sessions} completed sessions in period."); } Err(e) => eprintln!("Error: {e:?}"), } }