gtasks

HTTP Client for Google Tasks API v1

5 releases

0.5.0 Nov 10, 2023
0.4.3 Oct 31, 2023
0.4.2 Oct 25, 2023
0.4.1 Sep 27, 2022
0.4.0 Sep 27, 2022

MIT/Apache

29KB
517 lines

gtasks

CodeScene Code Health

Rust Client for Google Tasks API v1

Example

[dependencies]
gtasks = "0.5"

Read tasks

use gtasks::Service;

async fn main() {
    // Option 1: use static token
    let task_srvc = Service::with_token("access_token").unwrap();
    read_tasks(&task_srvc).await;

    // Option 2: use closure to obtain auth token
    let token_provider = || {
        Ok("access_token".to_owned())
    };

    let task_srvc = Service::with_auth(token_provider).unwrap();
    read_tasks(&task_srvc).await;
}

async fn read_tasks(task_srvc: &Service) {
    let tasklists = task_srvc.list_tasklists(None).await.unwrap();
    for tasklist in tasklists.items.iter() {
        println!("tasklist: {}", tasklist.title.as_ref().unwrap());
    }

    let list_id = tasklists.items[0].id.as_ref().unwrap();

    // print tasks from the list
    let opts = gtasks::TaskOptions {
        max_results: Some(5),
        show_completed: Some(true),
        show_hidden: Some(true),
        ..Default::default()
    };

    let tasks = task_srvc
        .list_tasks(list_id, Some(opts), None)
        .await
        .unwrap();

    if let Some(tasks) = tasks {
        let items = tasks.items.unwrap();

        for item in items {
            println!("{:?}", item.title);
        }
    }
}

License

License under either or:

Dependencies

~5–20MB
~248K SLoC