From a3ba3cd51175a1de0c99ac92419ada3f28fc04e5 Mon Sep 17 00:00:00 2001 From: Daan Boerlage Date: Tue, 21 Jan 2025 17:40:48 +0100 Subject: [PATCH] Capture additional fields on the list command --- src/cmd/list.rs | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/src/cmd/list.rs b/src/cmd/list.rs index de120d3..36142bb 100644 --- a/src/cmd/list.rs +++ b/src/cmd/list.rs @@ -2,17 +2,25 @@ use crate::jira_config::JiraConfig; use reqwest::header::{HeaderMap, HeaderValue, CONTENT_TYPE}; use serde::{Deserialize, Serialize}; -#[derive(Deserialize, Serialize)] +#[derive(Debug, Deserialize, Serialize)] struct JiraIssue { key: String, + #[serde(rename = "self")] + href: String, fields: JiraIssueResponseFields, } -#[derive(Deserialize, Serialize)] +#[derive(Debug, Deserialize, Serialize)] struct JiraIssueResponseFields { summary: String, status: Status, - created: String, + created: chrono::DateTime, + priority: Priority, + assignee: Person, + reporter: Person, + creator: Person, + #[serde(rename = "duedate")] + due_date: Option, } #[derive(Deserialize)] @@ -21,11 +29,29 @@ struct JiraSearchResponse { total: u32, } -#[derive(Deserialize, Serialize)] +#[derive(Debug, Deserialize, Serialize)] struct Status { name: String, } +#[derive(Debug, Deserialize, Serialize)] +struct Priority { + name: String, + id: String, +} + +#[derive(Debug, Deserialize, Serialize)] +struct Person { + #[serde(rename = "self")] + href: String, + #[serde(rename = "displayName")] + display_name: String, + #[serde(rename = "accountId")] + account_id: String, + #[serde(rename = "emailAddress")] + email_address: String, +} + async fn list_jira_issues( config: &JiraConfig, ) -> Result> {