88 lines
2.1 KiB
Rust
88 lines
2.1 KiB
Rust
use crate::entities::doc::Doc;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
|
pub struct JiraIssue {
|
|
pub key: String,
|
|
#[serde(rename = "self")]
|
|
pub href: String,
|
|
pub fields: JiraIssueResponseFields,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
|
pub struct JiraIssueResponseFields {
|
|
pub summary: String,
|
|
pub description: Option<Description>,
|
|
pub status: Status,
|
|
pub created: chrono::DateTime<chrono::Utc>,
|
|
pub priority: Priority,
|
|
pub assignee: Person,
|
|
pub reporter: Person,
|
|
pub creator: Person,
|
|
#[serde(rename = "duedate")]
|
|
pub due_date: Option<chrono::NaiveDate>,
|
|
pub comment: Option<Comments>,
|
|
pub votes: Votes,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[serde(tag = "type")]
|
|
pub enum Description {
|
|
Doc(Doc),
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
|
pub struct Status {
|
|
pub name: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
|
pub struct Priority {
|
|
pub name: String,
|
|
pub id: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
|
pub struct Person {
|
|
#[serde(rename = "self")]
|
|
pub href: String,
|
|
#[serde(rename = "displayName")]
|
|
pub display_name: String,
|
|
#[serde(rename = "accountId")]
|
|
pub account_id: String,
|
|
#[serde(rename = "emailAddress")]
|
|
pub email_address: Option<String>,
|
|
}
|
|
|
|
#[derive(Debug, Default, Clone, Deserialize, Serialize)]
|
|
pub struct Comments {
|
|
pub total: u32,
|
|
#[serde(rename = "maxResults")]
|
|
pub max_results: u32,
|
|
#[serde(rename = "startAt")]
|
|
pub start_at: u32,
|
|
pub comments: Vec<Comment>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
|
pub struct Comment {
|
|
#[serde(rename = "self")]
|
|
pub href: String,
|
|
pub id: String,
|
|
pub author: Person,
|
|
pub body: Doc,
|
|
#[serde(rename = "updateAuthor")]
|
|
pub update_author: Person,
|
|
pub created: chrono::DateTime<chrono::Utc>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
|
pub struct Votes {
|
|
#[serde(rename = "self")]
|
|
pub href: String,
|
|
#[serde(rename = "votes")]
|
|
pub count: i32,
|
|
#[serde(rename = "hasVoted")]
|
|
pub has_voted: bool,
|
|
}
|