anicca/cli/formatters/markdown/
request_body.rs1use super::schema::SchemaPrinter;
2use crate::diff::request_body::RequestBodyDiff;
3
4pub struct RequestBodyPrinter<'a> {
5 pub request_body: &'a RequestBodyDiff,
6}
7
8impl<'a> RequestBodyPrinter<'a> {
9 pub fn print(&self) -> String {
10 let mut result = String::new();
11
12 if self.request_body.added.is_some() {
13 result.push_str("Request body was added.\n");
14 }
15
16 if self.request_body.removed.is_some() {
17 result.push_str("Request body was added.\n");
18 }
19
20 if let Some(content_diff) = &self.request_body.content_changed {
21 for media_type_pair in &content_diff.added {
22 result.push_str(&format!(
23 " - Request body media type {} was added.\n",
24 media_type_pair.0
25 ));
26 }
27
28 for media_type_pair in &content_diff.removed {
29 result.push_str(&format!(
30 " - Request body media type {} was removed.\n",
31 media_type_pair.0
32 ));
33 }
34
35 for (media_type, media_type_diff) in &content_diff.changed {
36 result.push_str(&format!(
37 " - Request body media type {} changed:.\n",
38 media_type
39 ));
40
41 if let Some(schema_diff) = &media_type_diff.schema_changed {
42 let schema = SchemaPrinter {
43 diff: &schema_diff,
44 indent: 4,
45 }
46 .print();
47 result.push_str(&schema);
48 }
49 }
50 }
51
52 result
53 }
54}