1use chrono::Utc;
2use dialoguer::Confirm;
3use std::env;
4use tgl_cli::svc;
5
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let token = env::var("TOGGL_API_TOKEN").expect("missing TOGGL_API_TOKEN environment variable");
8 let client = svc::Client::new(token, Utc::now)?;
9 let workspaces = client.get_workspaces()?;
10
11 if Confirm::new().with_prompt("Print workspaces?").interact()? {
12 println!("{workspaces:#?}");
13 }
14
15 for w in workspaces {
16 let projects = client.get_projects(w.id)?;
17 let projects: Vec<_> = projects.iter().filter(|p| p.active).collect();
18
19 if Confirm::new()
20 .with_prompt("Print active projects?")
21 .interact()?
22 {
23 println!("{projects:#?}");
24 }
25
26 let time_entries = client.get_latest_entries()?;
27
28 if Confirm::new()
29 .with_prompt("Print recent time entries?")
30 .interact()?
31 {
32 println!("{time_entries:#?}");
33 }
34 }
35
36 Ok(())
37}