diff --git a/advotracker/examples/csv-test/main.rs b/advotracker/examples/csv-test/main.rs index 96d376d..c436f68 100644 --- a/advotracker/examples/csv-test/main.rs +++ b/advotracker/examples/csv-test/main.rs @@ -12,7 +12,7 @@ use serde::Deserialize; use std::env; use std::{error::Error, process}; use std::collections::HashMap; -use tracing::{debug, trace, Level}; +use tracing::{debug, trace, span, Level}; use advotracker::data::{PolicyCode, PolicyList, PolicyDataList, PolicyData}; @@ -83,7 +83,8 @@ fn export(p: &mut String, lang: &String) -> Result> { /// https://docs.rs/csv/1.1.3/csv/cookbook/index.html /// https://blog.burntsushi.net/csv/ fn import(p: &mut String, data_list: &mut PolicyDataList, - policy_numbers: &mut HashMap, lang: &String) -> Result> { + policy_numbers: &mut HashMap, lang: &String) + -> Result> { use std::fs::File; use std::path::Path; use std::ffi::OsStr; @@ -155,9 +156,7 @@ fn import(p: &mut String, data_list: &mut PolicyDataList, let dt_end: DateTime = Local::now(); let duration = dt_end.signed_duration_since(dt_start); - println!("Duration: {:#?}", duration); - //let seconds = duration.secs; - //println!("Seconds: {:#?}", seconds); + trace!(target: "csv-test", record_count = ?count, duration = ?duration); state = t!("state.finished", lang); @@ -167,10 +166,10 @@ fn import(p: &mut String, data_list: &mut PolicyDataList, state = ?state, date_stop = ?dt_end.to_string()); - //Ok(count, duration.seconds()) Ok(count) } +#[allow(dead_code)] /// validate a given policy number /// result will return true or false fn is_valid(policy_number: &usize, policy_list: &PolicyDataList, @@ -188,7 +187,7 @@ fn is_valid(policy_number: &usize, policy_list: &PolicyDataList, policy_list = ?policy_list.name, elements = ?policy_list.policy_data.len(), date_start = ?dt_start.to_string()); - println!("Policy_number list: {:?}", policy_list.policy_data); + //println!("Policy_number list: {:?}", policy_list.policy_data); // WIP: testcode to collect policy_number via iterator //println!("policy_number: {:?}", policy_list.policy_data[1].policy_number); @@ -236,24 +235,28 @@ fn is_valid(policy_number: &usize, policy_list: &PolicyDataList, //let index: usize = test.iter().enumerate().find(|&r| r.policy_number == "two".to_string()).unwrap().0; - let result = false; + let mut result = false; match policy_numbers.get(&policy_number) { Some(&policy_code) => { - let mut res = t!("policy.validation.success", lang); + let res = t!("policy.validation.success", lang); println!("policy_number: {} ({:?})", policy_number, policy_code); result = true; + trace!(target: "csv-test", + policy_number = ?policy_number, + validation = ?res, + policy_code = ?policy_code); }, _ => { - let mut res = t!("policy.validation.failed", lang); - println!("Nuup! Number isn't valid!"); - }, + let res = t!("policy.validation.failed", lang); + //println!("Noop! Number isn't valid!"); + println!("{:?}", res); + trace!(target: "csv-test", + policy_number = ?policy_number, + validation = ?res); + }, } - trace!(target: "csv-test", - validation = ?res, - policy_number = ?policy_number, - policy_code = ?policy_code); let dt_end: DateTime = Local::now(); let duration = dt_end.signed_duration_since(dt_start); @@ -289,10 +292,6 @@ fn main() -> Result<(), Box> { //.with_max_level(tracing::Level::DEBUG) .finish(); - // initialize logger - //env_logger::init(); - //info!("Commencing the import Test-Run!"); - tracing::subscriber::with_default(subscriber, || { // get system environment let mut lang = env::var("LANG").unwrap_or("en".to_string()); @@ -356,9 +355,24 @@ fn main() -> Result<(), Box> { } // test if policy_number is_valid - let policy_number : usize = 1999999999; - let _res = is_valid(&policy_number, &policy_data, &mut policy_numbers, &lang); - println!("given policy_number {:?} is valid!", policy_number); + let test_policy_number = v.get::("test_policy_number").unwrap() as usize; + trace!(target: "csv-test", test_policy_number = ?test_policy_number); + //let policy_number : usize = 1999999999; + //match is_valid(&policy_number, &policy_data, &mut policy_numbers, &lang) { + // Ok(true) => { + match policy_numbers.get(&test_policy_number) { + Some(&policy_code) => { + let res = t!("policy.validation.success", lang); + println!("{:?}", res); + println!("policy_number: {} ({:?})", + test_policy_number, policy_code); + } + _ => { + let res = t!("policy.validation.failed", lang); + println!("{:?}", res); + //println!("Nuup! Number isn't valid!"); + }, + } // export policy code elements to csv-file let mut csv_export_path = v.get::("export_file").unwrap(); diff --git a/advotracker/examples/csv-test/parse_args.rs b/advotracker/examples/csv-test/parse_args.rs index 723754a..a2a0668 100644 --- a/advotracker/examples/csv-test/parse_args.rs +++ b/advotracker/examples/csv-test/parse_args.rs @@ -1,5 +1,9 @@ -/// The given Viperus structure will be muted according to the -/// processed default, environment and commandline arguments +/* + * advotracker - Hotline tackingtool for Advocats + * + * Copyright 2020 Ralf Zerres + * SPDX-License-Identifier: (0BSD or MIT) + */ // parse CLI commandline arguments with clap use clap::{crate_authors, crate_description, crate_name, crate_version, App, Arg}; @@ -9,8 +13,8 @@ use std::env; use tracing::trace; use viperus::Viperus; -// Parse the commandline arguments and preset default values -// Precedence: defaults -> config-file -> environment -> commandline +/// Parse the commandline arguments and preset default values +/// Precedence: defaults -> config-file -> environment -> commandline pub fn parse_args(v: &mut Viperus) -> Result<(), Box> { if cfg!(feature = "fmt-clap") { trace!(target: "Viperus", "Viperus feature 'fmt-clap' enabled."); @@ -19,9 +23,9 @@ pub fn parse_args(v: &mut Viperus) -> Result<(), Box> { // preset default key/value pairs (lowest priority) v.add_default("config_file", String::from("csv_import.ron")); - //v.add_default("import_file", String::from("POLLFNR_WOECHENTLICH.txt")); - v.add_default("import_file", String::from("POLLFNR_MINI.txt")); + v.add_default("import_file", String::from("POLLFNR_WOECHENTLICH.txt")); v.add_default("export_file", String::from("")); + v.add_default("test_policy_number", 123456789); v.add_default("to_email_address_file", String::from("Allianz RA-Hotline ")); v.add_default("from_email_address_file", String::from("Allianz-Hotline RA-Hiedemann ")); //v.add_default("username", String::from("nctalkbot")); @@ -64,8 +68,8 @@ SMR Unerledigt: 089 92529 60222") .short("i") .long("importFile") .help("Select source file for the csv-import") - //.default_value("POLLFNR_WOECHENTLICH.txt") - .default_value("POLLFNR_MINI.txt") + .default_value("POLLFNR_WOECHENTLICH.txt") + //.default_value("POLLFNR_MINI.txt") .takes_value(true), ) .arg( @@ -76,6 +80,14 @@ SMR Unerledigt: 089 92529 60222") .default_value("RA-Hiedemann_DirectCall.txt") .takes_value(true), ) + .arg( + Arg::with_name("fromEmailAddress") + .short("f") + .long("fromEmailAddress") + .help("Select the sender email-address (From:)") + .default_value("Allianz-Hotline RA-Hiedemann ") + .takes_value(true), + ) .arg( Arg::with_name("toEmailAddress") .short("t") @@ -85,11 +97,11 @@ SMR Unerledigt: 089 92529 60222") .takes_value(true), ) .arg( - Arg::with_name("fromEmailAddress") - .short("f") - .long("fromEmailAddress") - .help("Select the sender email-address (From:)") - .default_value("Allianz-Hotline RA-Hiedemann ") + Arg::with_name("testPolicyNumber") + .short("p") + .long("testPolicyNumber") + .help("Test validity of given policy number") + //.default_value("") .takes_value(true), ) // .arg( @@ -151,6 +163,7 @@ SMR Unerledigt: 089 92529 60222") v.bond_clap("exportFile", "export_file"); v.bond_clap("toEmailAddress", "to_email_address"); v.bond_clap("fromEmailAddress", "from_email_address"); + v.bond_clap("testPolicyNumber", "test_policy_number"); //v.bond_clap("username", "username"); //v.bond_clap("password", "password"); v.bond_clap("verbose", "verbose"); @@ -177,6 +190,10 @@ SMR Unerledigt: 089 92529 60222") "from_email_address: {:?}", v.get::("from_email_address").unwrap_or_default() ); + println!( + "test_policy_number: {:?}", + v.get::("test_policy_number").unwrap_or_default() + ); // println!( // "username: {:?}", // v.get::("username").unwrap_or_default()