From 9c20dc09ec77e26bf44209c9aa4ad5fb69cdd772 Mon Sep 17 00:00:00 2001 From: Joshua Coles Date: Mon, 15 Jul 2024 16:46:08 +0100 Subject: [PATCH] Add Tags --- src/main.rs | 2 +- src/toggl/mod.rs | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 8e584a0..5e721f1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,5 +10,5 @@ async fn main() { sensitive::WORKSPACE_ID, ); - dbg!(api.get_clients().await); + dbg!(api.get_tags().await); } diff --git a/src/toggl/mod.rs b/src/toggl/mod.rs index b123e04..b845baf 100644 --- a/src/toggl/mod.rs +++ b/src/toggl/mod.rs @@ -121,6 +121,18 @@ impl TogglApi { Ok(result) } + + pub async fn get_tags(&self) -> Result, TogglError> { + let url = format!( + "{base_url}/workspaces/{workspace_id}/tags", + base_url = BASE_URL, + workspace_id = self.workspace_id + ); + + Self::parse(self.client.get(&url) + .headers(self.headers.clone()) + .send().await?).await + } } mod types { @@ -201,6 +213,7 @@ mod types { actual_hours: Option, actual_seconds: Option, can_track_time: bool, + permissions: Option, } #[derive(Serialize, Deserialize, Debug, Clone)] @@ -237,6 +250,19 @@ mod types { /// The Workspace ID associated with the client. #[serde(rename = "wid")] pub workspace_id: i32, + + permissions: Option, + } + + #[derive(Serialize, Deserialize, Debug, Clone)] + pub struct Tag { + id: u64, + name: String, + workspace_id: u64, + creator_id: u64, + at: DateTime, + deleted_at: Option>, + permissions: Option, } }