first commit
This commit is contained in:
44
examples/demo.rs
Normal file
44
examples/demo.rs
Normal file
@@ -0,0 +1,44 @@
|
||||
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:?}"),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user