Capture additional fields on the list command

This commit is contained in:
Daan Boerlage 2025-01-21 17:40:48 +01:00
parent f0aaf0a7e7
commit a3ba3cd511
Signed by: daan
GPG key ID: FCE070E1E4956606

View file

@ -2,17 +2,25 @@ use crate::jira_config::JiraConfig;
use reqwest::header::{HeaderMap, HeaderValue, CONTENT_TYPE}; use reqwest::header::{HeaderMap, HeaderValue, CONTENT_TYPE};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize)] #[derive(Debug, Deserialize, Serialize)]
struct JiraIssue { struct JiraIssue {
key: String, key: String,
#[serde(rename = "self")]
href: String,
fields: JiraIssueResponseFields, fields: JiraIssueResponseFields,
} }
#[derive(Deserialize, Serialize)] #[derive(Debug, Deserialize, Serialize)]
struct JiraIssueResponseFields { struct JiraIssueResponseFields {
summary: String, summary: String,
status: Status, status: Status,
created: String, created: chrono::DateTime<chrono::Utc>,
priority: Priority,
assignee: Person,
reporter: Person,
creator: Person,
#[serde(rename = "duedate")]
due_date: Option<chrono::NaiveDate>,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
@ -21,11 +29,29 @@ struct JiraSearchResponse {
total: u32, total: u32,
} }
#[derive(Deserialize, Serialize)] #[derive(Debug, Deserialize, Serialize)]
struct Status { struct Status {
name: String, 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( async fn list_jira_issues(
config: &JiraConfig, config: &JiraConfig,
) -> Result<JiraSearchResponse, Box<dyn std::error::Error>> { ) -> Result<JiraSearchResponse, Box<dyn std::error::Error>> {