From 33d1a608e6f2718b045d08fa530ba1790a21ff36 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sun, 27 Jan 2019 17:41:59 +0400 Subject: Sun, 27 Jan 2019 17:41:59 +0400 Signed-off-by: Valentin Popov --- src/parser.rs | 90 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 45 insertions(+), 45 deletions(-) (limited to 'src/parser.rs') diff --git a/src/parser.rs b/src/parser.rs index 2a2c2cf..20984c9 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -6,52 +6,52 @@ use xml::reader::{EventReader, XmlEvent}; #[derive(Serialize)] pub struct ParserResult { - pub external_id: String, - pub meeting_id: String, - pub meeting_name: String, - pub context: Value, + pub external_id: String, + pub meeting_id: String, + pub meeting_name: String, + pub context: Value, } pub fn parser(content: BufReader) -> ParserResult { - let mut data = ParserResult { - context: serde_json::from_str("{}").unwrap(), - external_id: "".to_string(), - meeting_id: "".to_string(), - meeting_name: "".to_string(), - }; - - for element in EventReader::new(content) { - match element { - Ok(XmlEvent::StartElement { - name, attributes, .. - }) => { - let el_name = name.local_name.to_string(); - - for attribute in attributes { - let attr_name: String = attribute.name.local_name.to_string(); - let attr_value: String = attribute.value.to_string(); - - if el_name == "meeting" && attr_name == "id" { - data.meeting_id = attr_value.clone(); - } - - if el_name == "meeting" && attr_name == "externalId" { - data.external_id = attr_value.clone(); - } - - if el_name == "meeting" && attr_name == "name" { - data.meeting_name = attr_value.clone(); - } - - if el_name == "metadata" && attr_name == "bn-recording-status" { - data.context = serde_json::from_str(&attr_value).unwrap(); - } - } - } - Err(error) => panic!(error), - _ => {} - } - } - - return data; + let mut data = ParserResult { + context: serde_json::from_str("{}").unwrap(), + external_id: "".to_string(), + meeting_id: "".to_string(), + meeting_name: "".to_string(), + }; + + for element in EventReader::new(content) { + match element { + Ok(XmlEvent::StartElement { + name, attributes, .. + }) => { + let el_name = name.local_name.to_string(); + + for attribute in attributes { + let attr_name: String = attribute.name.local_name.to_string(); + let attr_value: String = attribute.value.to_string(); + + if el_name == "meeting" && attr_name == "id" { + data.meeting_id = attr_value.clone(); + } + + if el_name == "meeting" && attr_name == "externalId" { + data.external_id = attr_value.clone(); + } + + if el_name == "meeting" && attr_name == "name" { + data.meeting_name = attr_value.clone(); + } + + if el_name == "metadata" && attr_name == "bn-recording-status" { + data.context = serde_json::from_str(&attr_value).unwrap(); + } + } + } + Err(error) => panic!(error), + _ => {} + } + } + + return data; } -- cgit v1.2.3