Add some information on why a file was rejected to header parsing

korrat
Dec 17, 2023, 10:07 AM
4XK34NNIRSRK2C654MECVG27WSLH3NIP4334D3KRTW4Q3Y7ECIBAC

Dependencies

  • [2] 7URE4HPL Add an importer for DKB account statements
  • [*] I2P2FTLE add basic parser for german decimals

Change contents

  • edit in importers/dkb/src/lib.rs at line 103
    [2.2473]
    [2.2473]
    #[tracing::instrument(fields(header), skip(self, buffer))]
  • edit in importers/dkb/src/lib.rs at line 110
    [2.2755]
    [2.2755]
    tracing::Span::current().record("header", tracing::field::debug(bstr::BStr::new(header)));
  • edit in importers/dkb/src/lib.rs at line 120
    [2.3049]
    [2.3049]
    tracing::debug!(?record, "unexpected header format: no account number line");
  • replacement in importers/dkb/src/lib.rs at line 124
    [2.3085][2.3085:3220]()
    let (account_number, _) = record[1].split_once(" / ")?;
    let Ok(account_number) = Iban::from_str(account_number) else {
    [2.3085]
    [2.3220]
    let Some((account_number, _)) = record[1].split_once(" / ") else {
    tracing::debug!(
    account_number = &record[1],
    "unexpected account number format: no separator"
    );
  • edit in importers/dkb/src/lib.rs at line 131
    [2.3256]
    [2.3256]
    let account_number = match Iban::from_str(account_number) {
    Ok(account_number) => account_number,
    Err(error) => {
    tracing::debug!(
    account_number,
    %error,
    "unexpected account number format: invalid IBAN"
    );
    return None;
    }
    };
  • edit in importers/dkb/src/lib.rs at line 144
    [2.3344]
    [2.3344]
    tracing::debug!(?record, "unexpected header format: no from date line");
  • replacement in importers/dkb/src/lib.rs at line 148
    [2.3380][2.3380:3477]()
    let Ok(from_date) = Date::parse(&record[1], DATE_FORMAT) else {
    return None;
    [2.3380]
    [2.3477]
    let from_date = match Date::parse(&record[1], DATE_FORMAT) {
    Ok(from_date) => from_date,
    Err(error) => {
    tracing::debug!(
    %error,
    from_date = &record[1],
    "unexpected date format for from date"
    );
    return None;
    }
  • edit in importers/dkb/src/lib.rs at line 161
    [2.3576]
    [2.3576]
    tracing::debug!(?record, "unexpected header format: no to date line");
  • replacement in importers/dkb/src/lib.rs at line 165
    [2.3612][2.3612:3707]()
    let Ok(to_date) = Date::parse(&record[1], DATE_FORMAT) else {
    return None;
    [2.3612]
    [2.3707]
    let to_date = match Date::parse(&record[1], DATE_FORMAT) {
    Ok(to_date) => to_date,
    Err(error) => {
    tracing::debug!(
    %error,
    to_date = &record[1],
    "unexpected date format for to date"
    );
    return None;
    }
  • edit in importers/dkb/src/lib.rs at line 178
    [2.3782]
    [2.3782]
    tracing::debug!(?record, "unexpected header format: no balance line");
  • replacement in importers/dkb/src/lib.rs at line 182
    [2.3818][2.3818:3862]()
    let Ok(balance_date) = Date::parse(
    [2.3818]
    [2.3862]
    let balance_date = match Date::parse(
  • replacement in importers/dkb/src/lib.rs at line 185
    [2.3973][2.3973:4015]()
    ) else {
    return None;
    [2.3973]
    [2.4015]
    ) {
    Ok(balance_date) => balance_date,
    Err(error) => {
    tracing::debug!(
    %error,
    field = &record[0],
    "unexpected header format: unexpected field header for balance",
    );
    return None;
    }
  • replacement in importers/dkb/src/lib.rs at line 197
    [2.4027][2.4027:4123]()
    let Ok(final_balance) = parse_german_amount(&record[1]) else {
    return None;
    [2.4027]
    [2.4123]
    let final_balance = match parse_german_amount(&record[1]) {
    Ok(final_balance) => final_balance,
    Err(error) => {
    tracing::debug!(
    %error,
    balance = &record[1],
    "unexpected format for closing balance",
    );
    return None;
    }
  • replacement in importers/dkb/src/lib.rs at line 252
    [2.5245][2.5245:5293]()
    header.to_date.next_day().unwrap(),
    [2.5245]
    [2.5293]
    header.balance_date.next_day().unwrap(),
  • replacement in importers/dkb/src/lib.rs at line 320
    [2.7172][2.7172:7221]()
    Record::Statement(record) => vec![],
    [2.7172]
    [2.7221]
    Record::Statement(_record) => vec![],
  • edit in importers/dkb/Cargo.toml at line 28
    [2.16487]
    [2.16487]
    tracing.workspace = true
  • edit in Cargo.lock at line 254
    [2.18067]
    [2.18067]
    "tracing",