From 4502dee5211a16386c340823ac3733883b2c3fa0 Mon Sep 17 00:00:00 2001 From: Henry Schimke Date: Sun, 11 Sep 2022 14:58:59 -0500 Subject: [PATCH] bizcard parser passes --- src/client/result/AddressBookParsedResult.rs | 6 +++--- src/client/result/BizcardResultParser.rs | 8 ++++---- src/client/result/ResultParser.rs | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/client/result/AddressBookParsedResult.rs b/src/client/result/AddressBookParsedResult.rs index 4f6563c..9022977 100644 --- a/src/client/result/AddressBookParsedResult.rs +++ b/src/client/result/AddressBookParsedResult.rs @@ -117,17 +117,17 @@ impl AddressBookParsedRXingResult { urls: Vec, geo: Vec, ) -> Result { - if phone_numbers.len() != phone_types.len() { + if phone_numbers.len() != phone_types.len() && phone_types.len() > 0{ return Err(Exceptions::IllegalArgumentException( "Phone numbers and types lengths differ".to_owned(), )); } - if emails.len() != email_types.len() { + if emails.len() != email_types.len() && email_types.len() > 0{ return Err(Exceptions::IllegalArgumentException( "Emails and types lengths differ".to_owned(), )); } - if addresses.len() != address_types.len() { + if addresses.len() != address_types.len() && address_types.len() > 0{ return Err(Exceptions::IllegalArgumentException( "Addresses and types lengths differ".to_owned(), )); diff --git a/src/client/result/BizcardResultParser.rs b/src/client/result/BizcardResultParser.rs index 4971bb7..09a0602 100644 --- a/src/client/result/BizcardResultParser.rs +++ b/src/client/result/BizcardResultParser.rs @@ -46,8 +46,8 @@ pub fn parse(result: &RXingResult) -> Option { let lastName = ResultParser::match_single_do_co_mo_prefixed_field("X:", &rawText, true) .unwrap_or_default(); let fullName = buildName(&firstName, &lastName); - let title = ResultParser::match_single_do_co_mo_prefixed_field("T:", &rawText, true); - let org = ResultParser::match_single_do_co_mo_prefixed_field("C:", &rawText, true); + let title = ResultParser::match_single_do_co_mo_prefixed_field("T:", &rawText, true).unwrap_or_default(); + let org = ResultParser::match_single_do_co_mo_prefixed_field("C:", &rawText, true).unwrap_or_default(); let addresses = ResultParser::match_do_co_mo_prefixed_field("A:", &rawText); let phoneNumber1 = ResultParser::match_single_do_co_mo_prefixed_field("B:", &rawText, true) .unwrap_or_default(); @@ -70,9 +70,9 @@ pub fn parse(result: &RXingResult) -> Option { "".to_owned(), addresses?, Vec::new(), - org?, + org, "".to_owned(), - title?, + title, Vec::new(), Vec::new(), ) { diff --git a/src/client/result/ResultParser.rs b/src/client/result/ResultParser.rs index 8ae601a..383612b 100644 --- a/src/client/result/ResultParser.rs +++ b/src/client/result/ResultParser.rs @@ -37,7 +37,7 @@ use super::{ BookmarkDoCoMoResultParser, EmailAddressResultParser, EmailDoCoMoResultParser, GeoResultParser, ISBNResultParser, ParsedClientResult, ParsedRXingResult, ProductResultParser, SMSMMSResultParser, SMTPResultParser, TelResultParser, TextParsedRXingResult, URIResultParser, - URLTOResultParser, VINResultParser, WifiResultParser, + URLTOResultParser, VINResultParser, WifiResultParser, AddressBookDoCoMoResultParser, AddressBookAUResultParser, VCardResultParser, BizcardResultParser, }; /** @@ -104,13 +104,13 @@ pub fn getMassagedText(result: &RXingResult) -> String { } pub fn parseRXingResult(theRXingResult: &RXingResult) -> ParsedClientResult { - let PARSERS: [&ParserFunction; 14] = [ + let PARSERS: [&ParserFunction; 18] = [ &BookmarkDoCoMoResultParser::parse, - // new AddressBookDoCoMoRXingResultParser(), + &AddressBookDoCoMoResultParser::parse, &EmailDoCoMoResultParser::parse, - // new AddressBookAURXingResultParser(), - // new VCardRXingResultParser(), - // new BizcardRXingResultParser(), + &AddressBookAUResultParser::parse, + &VCardResultParser::parse, + &BizcardResultParser::parse, // new VEventRXingResultParser(), &EmailAddressResultParser::parse, &SMTPResultParser::parse,