use chrono::Utc; use dialoguer::Confirm; use std::env; use tgl_cli::svc; fn main() -> Result<(), Box> { let token = env::var("TOGGL_API_TOKEN").expect("missing TOGGL_API_TOKEN environment variable"); let client = svc::Client::new(token, Utc::now)?; let workspaces = client.get_workspaces()?; if Confirm::new().with_prompt("Print workspaces?").interact()? { println!("{workspaces:#?}"); } for w in workspaces { let projects = client.get_projects(w.id)?; let projects: Vec<_> = projects.iter().filter(|p| p.active).collect(); if Confirm::new() .with_prompt("Print active projects?") .interact()? { println!("{projects:#?}"); } let time_entries = client.get_latest_entries()?; if Confirm::new() .with_prompt("Print recent time entries?") .interact()? { println!("{time_entries:#?}"); } } Ok(()) }