jirust_cli/utils/
json_printer.rs1use super::PrintableData;
2
3pub fn print_json(data: PrintableData) {
20 match data {
21 PrintableData::Generic { data } => {
22 if let Ok(output) = serde_json::to_string_pretty(&data) {
23 println!("{}", output);
24 } else {
25 println!("Failed to serialize data");
26 }
27 }
28 PrintableData::IssueTransitions { transitions } => {
29 if let Ok(output) = serde_json::to_string_pretty(&transitions) {
30 println!("{}", output);
31 } else {
32 println!("Failed to serialize data");
33 }
34 }
35 PrintableData::IssueCreated { issues } => {
36 if let Ok(output) = serde_json::to_string_pretty(&issues) {
37 println!("{}", output);
38 } else {
39 println!("Failed to serialize data");
40 }
41 }
42 PrintableData::IssueData { issues } => {
43 if let Ok(output) = serde_json::to_string_pretty(&issues) {
44 println!("{}", output);
45 } else {
46 println!("Failed to serialize data");
47 }
48 }
49 PrintableData::IssueType { issue_types } => {
50 if let Ok(output) = serde_json::to_string_pretty(&issue_types) {
51 println!("{}", output);
52 } else {
53 println!("Failed to serialize data");
54 }
55 }
56 PrintableData::IssueTypeField { issue_type_fields } => {
57 if let Ok(output) = serde_json::to_string_pretty(&issue_type_fields) {
58 println!("{}", output);
59 } else {
60 println!("Failed to serialize data");
61 }
62 }
63 PrintableData::Project { projects } => {
64 if let Ok(output) = serde_json::to_string_pretty(&projects) {
65 println!("{}", output);
66 } else {
67 println!("Failed to serialize data");
68 }
69 }
70 PrintableData::TransitionedIssue { issues } => {
71 let printable = issues
72 .iter()
73 .map(|(issue, transitioned, assigned, fix_version)| {
74 serde_json::json!({
75 "issue": issue,
76 "transitioned": transitioned,
77 "assigned": assigned,
78 "fixVersion": fix_version,
79 })
80 })
81 .collect::<Vec<_>>();
82 if let Ok(output) = serde_json::to_string_pretty(&printable) {
83 println!("{}", output);
84 } else {
85 println!("Failed to serialize data");
86 }
87 }
88 PrintableData::Version { versions } => {
89 if let Ok(output) = serde_json::to_string_pretty(&versions) {
90 println!("{}", output);
91 } else {
92 println!("Failed to serialize data");
93 }
94 }
95 }
96}