Skip to content
This repository has been archived by the owner on Nov 24, 2024. It is now read-only.

Commit

Permalink
fix issue with detailEntries parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
norkator committed Dec 1, 2023
1 parent cbb52d6 commit 74f0cb4
Showing 1 changed file with 40 additions and 22 deletions.
62 changes: 40 additions & 22 deletions src/utils/parsers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,46 +181,64 @@ function parseStatementEntries(entriesObject: any[]): StatementEntry[] {
function parseStatementDetailEntries(detailEntriesObject: any[]): StatementDetailEntry[] {
const detailEntries: StatementDetailEntry[] = [];
detailEntriesObject.forEach((detailEntry: any) => {

detailEntries.push({
transactionDetails: {
references: {
accountServicerReference: detailEntry['TxDtls'][0]['Refs'][0]['AcctSvcrRef']
},
amountDetails: {
transactionAmount: {
amount: {
value: detailEntry['TxDtls'][0]['AmtDtls'][0]['TxAmt'][0]['Amt'][0]['_'],
currency: detailEntry['TxDtls'][0]['AmtDtls'][0]['TxAmt'][0]['Amt'][0]['$']['Ccy']
try {
detailEntries.push({
transactionDetails: {
references: {
accountServicerReference: detailEntry['TxDtls'][0]['Refs'][0]['AcctSvcrRef']
},
amountDetails: {
transactionAmount: {
amount: {
value: detailEntry['TxDtls'][0]['AmtDtls'][0]['TxAmt'][0]['Amt'][0]['_'],
currency: detailEntry['TxDtls'][0]['AmtDtls'][0]['TxAmt'][0]['Amt'][0]['$']['Ccy']
}
}
},
relatedParties: parseRelatedParties(detailEntry['TxDtls'][0]['RltdPties']),
remittanceInformation: {
unstructured: parseRemittanceInformation(detailEntry['TxDtls'][0]['RmtInf'][0])
},
relatedDetails: {
acceptanceDate: detailEntry['TxDtls'][0]['RltdDts'][0]['AccptncDtTm'][0]
}
},
relatedParties: parseRelatedParties(detailEntry['TxDtls'][0]['RltdPties']),
remittanceInformation: {
unstructured: detailEntry['TxDtls'][0]['RmtInf'][0]['Ustrd'][0]
},
relatedDetails: {
acceptanceDate: detailEntry['TxDtls'][0]['RltdDts'][0]['AccptncDtTm'][0]
}
}
});
});
} catch (e) {
console.error(`Error parsing entryDetails containing: ${JSON.stringify(detailEntry)}`);
console.error(e);
}
});

return detailEntries;
}


function parseRelatedParties(rltdPties: any): RelatedPartiesInterface {
try {
const key = Object.keys(rltdPties[0])[0];

return {type: key, name: rltdPties[0][key][0]['Nm'][0]};
} catch (e) {

return {type: null, name: null};
}
}

function parseRemittanceInformation(rmtInf: any): string {
try {
if (rmtInf.hasOwnProperty('Ustrd')) {
return rmtInf['Ustrd'][0];
} else if (rmtInf.hasOwnProperty('Strd')) {
return rmtInf['Strd'][0];
} else {
return '';
}
} catch (e) {
console.error(e);

return '';
}
}


export {
ParseBankStatement,
Expand Down

0 comments on commit 74f0cb4

Please sign in to comment.