jirust_cli/utils/
json_printer.rs

1use super::PrintableData;
2
3/// Print the data in JSON format
4///
5/// # Arguments
6///
7/// * `data` - The data to be printed
8///
9/// # Example
10///
11/// ```
12/// use jira_v3_openapi::models::Version;
13/// use jirust_cli::utils::{PrintableData, json_printer::print_json};
14///
15/// let versions: Vec<Version> = vec![Version::new()];
16///
17/// print_json(PrintableData::Version { versions });
18/// ```
19pub fn print_json(data: PrintableData) {
20    match data {
21        PrintableData::Generic { data } => {
22            println!("{}", serde_json::to_string_pretty(&data).unwrap());
23        }
24        PrintableData::IssueTransitions { transitions } => {
25            println!("{}", serde_json::to_string_pretty(&transitions).unwrap());
26        }
27        PrintableData::IssueCreated { issues } => {
28            println!("{}", serde_json::to_string_pretty(&issues).unwrap());
29        }
30        PrintableData::IssueData { issues } => {
31            println!("{}", serde_json::to_string_pretty(&issues).unwrap());
32        }
33        PrintableData::IssueType { issue_types } => {
34            println!("{}", serde_json::to_string_pretty(&issue_types).unwrap());
35        }
36        PrintableData::IssueTypeField { issue_type_fields } => {
37            println!(
38                "{}",
39                serde_json::to_string_pretty(&issue_type_fields).unwrap()
40            );
41        }
42        PrintableData::Project { projects } => {
43            println!("{}", serde_json::to_string_pretty(&projects).unwrap());
44        }
45        PrintableData::TransitionedIssue { issues } => {
46            let printable = issues
47                .iter()
48                .map(|(issue, transitioned, assigned, fix_version)| {
49                    serde_json::json!({
50                        "issue": issue,
51                        "transitioned": transitioned,
52                        "assigned": assigned,
53                        "fixVersion": fix_version,
54                    })
55                })
56                .collect::<Vec<_>>();
57            println!("{}", serde_json::to_string_pretty(&printable).unwrap());
58        }
59        PrintableData::Version { versions } => {
60            println!("{}", serde_json::to_string_pretty(&versions).unwrap());
61        }
62    }
63}