diff --git a/src/app-gocardless/banks/american-express-aesudef1.js b/src/app-gocardless/banks/american-express-aesudef1.js index eb4a737d..23695fc2 100644 --- a/src/app-gocardless/banks/american-express-aesudef1.js +++ b/src/app-gocardless/banks/american-express-aesudef1.js @@ -1,5 +1,4 @@ import { amountToInteger, sortByBookingDateOrValueDate } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -27,7 +26,6 @@ export default { return { ...transaction, date: transaction.bookingDate, - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/bankinter-bkbkesmm.js b/src/app-gocardless/banks/bankinter-bkbkesmm.js index 0370a1a4..a14dfcdc 100644 --- a/src/app-gocardless/banks/bankinter-bkbkesmm.js +++ b/src/app-gocardless/banks/bankinter-bkbkesmm.js @@ -3,7 +3,6 @@ import { amountToInteger, sortByBookingDateOrValueDate, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; const SORTED_BALANCE_TYPE_LIST = [ 'closingBooked', @@ -34,16 +33,14 @@ export default { }, normalizeTransaction(transaction, _booked) { - transaction.debtorName = transaction.debtorName?.replaceAll(';', ' '); - transaction.creditorName = transaction.creditorName?.replaceAll(';', ' '); - transaction.remittanceInformationUnstructured = - transaction.remittanceInformationUnstructured - .replaceAll(/\/Txt\/(\w\|)?/gi, '') - .replaceAll(';', ' '); - return { ...transaction, - payeeName: formatPayeeName(transaction), + debtorName: transaction.debtorName?.replaceAll(';', ' '), + creditorName: transaction.creditorName?.replaceAll(';', ' '), + remittanceInformationUnstructured: + transaction.remittanceInformationUnstructured + .replaceAll(/\/Txt\/(\w\|)?/gi, '') + .replaceAll(';', ' '), date: transaction.bookingDate || transaction.valueDate, }; }, diff --git a/src/app-gocardless/banks/belfius_gkccbebb.js b/src/app-gocardless/banks/belfius_gkccbebb.js index f65e6e36..9bbc8ac1 100644 --- a/src/app-gocardless/banks/belfius_gkccbebb.js +++ b/src/app-gocardless/banks/belfius_gkccbebb.js @@ -1,5 +1,4 @@ import Fallback from './integration-bank.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -19,7 +18,6 @@ export default { ...transaction, transactionId: transaction.internalTransactionId, date: transaction.bookingDate || transaction.valueDate, - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/bnp-be-gebabebb.js b/src/app-gocardless/banks/bnp-be-gebabebb.js index c3ff0678..84e6da98 100644 --- a/src/app-gocardless/banks/bnp-be-gebabebb.js +++ b/src/app-gocardless/banks/bnp-be-gebabebb.js @@ -3,7 +3,6 @@ import { amountToInteger, printIban, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; const SORTED_BALANCE_TYPE_LIST = [ 'closingBooked', @@ -97,7 +96,6 @@ export default { ...transaction, creditorName: creditorName, date: transaction.valueDate || transaction.bookingDate, - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/danskebank-dabno22.js b/src/app-gocardless/banks/danskebank-dabno22.js index 8df00b1d..98f7dc10 100644 --- a/src/app-gocardless/banks/danskebank-dabno22.js +++ b/src/app-gocardless/banks/danskebank-dabno22.js @@ -3,7 +3,6 @@ import { amountToInteger, sortByBookingDateOrValueDate, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -44,7 +43,6 @@ export default { return { ...transaction, date: transaction.bookingDate, - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/ing-ingddeff.js b/src/app-gocardless/banks/ing-ingddeff.js index d1df187c..ab7db91c 100644 --- a/src/app-gocardless/banks/ing-ingddeff.js +++ b/src/app-gocardless/banks/ing-ingddeff.js @@ -1,5 +1,4 @@ import { printIban, amountToInteger } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -27,12 +26,10 @@ export default { ? remittanceInformationMatch[1] : transaction.remittanceInformationUnstructured; - transaction.remittanceInformationUnstructured = remittanceInformation; - return { ...transaction, + remittanceInformationUnstructured: remittanceInformation, date: transaction.bookingDate || transaction.valueDate, - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/ing-pl-ingbplpw.js b/src/app-gocardless/banks/ing-pl-ingbplpw.js index 6b7fc148..f08d889c 100644 --- a/src/app-gocardless/banks/ing-pl-ingbplpw.js +++ b/src/app-gocardless/banks/ing-pl-ingbplpw.js @@ -1,5 +1,4 @@ import { printIban, amountToInteger } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -23,7 +22,6 @@ export default { return { ...transaction, date: transaction.bookingDate || transaction.valueDate, - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/integration-bank.js b/src/app-gocardless/banks/integration-bank.js index a2c80777..d1bbc077 100644 --- a/src/app-gocardless/banks/integration-bank.js +++ b/src/app-gocardless/banks/integration-bank.js @@ -4,7 +4,6 @@ import { amountToInteger, printIban, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; const SORTED_BALANCE_TYPE_LIST = [ 'closingBooked', @@ -52,18 +51,15 @@ export default { transaction.bookingDateTime || transaction.valueDate || transaction.valueDateTime; - // If we couldn't find a valid date field we filter out this transaction // and hope that we will import it again once the bank has processed the // transaction further. if (!date) { return null; } - return { ...transaction, date: d.format(d.parseISO(date), 'yyyy-MM-dd'), - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/mbank-retail-brexplpw.js b/src/app-gocardless/banks/mbank-retail-brexplpw.js index b5e0c2f7..b5316801 100644 --- a/src/app-gocardless/banks/mbank-retail-brexplpw.js +++ b/src/app-gocardless/banks/mbank-retail-brexplpw.js @@ -1,5 +1,4 @@ import { printIban, amountToInteger } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -23,7 +22,6 @@ export default { return { ...transaction, date: transaction.bookingDate || transaction.valueDate, - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/norwegian-xx-norwnok1.js b/src/app-gocardless/banks/norwegian-xx-norwnok1.js index 165b2519..4d3acdcd 100644 --- a/src/app-gocardless/banks/norwegian-xx-norwnok1.js +++ b/src/app-gocardless/banks/norwegian-xx-norwnok1.js @@ -3,7 +3,6 @@ import { amountToInteger, sortByBookingDateOrValueDate, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -35,7 +34,6 @@ export default { return { ...transaction, date: transaction.bookingDate, - payeeName: formatPayeeName(transaction), }; } @@ -55,7 +53,6 @@ export default { return { ...transaction, date: transaction.valueDate, - payeeName: formatPayeeName(transaction), }; } @@ -68,7 +65,6 @@ export default { return { ...transaction, date: matches[1], - payeeName: formatPayeeName(transaction), }; } } diff --git a/src/app-gocardless/banks/sandboxfinance-sfin0000.js b/src/app-gocardless/banks/sandboxfinance-sfin0000.js index 7a2dd918..5106b882 100644 --- a/src/app-gocardless/banks/sandboxfinance-sfin0000.js +++ b/src/app-gocardless/banks/sandboxfinance-sfin0000.js @@ -3,7 +3,6 @@ import { amountToInteger, sortByBookingDateOrValueDate, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -35,7 +34,6 @@ export default { return { ...transaction, date: transaction.bookingDate || transaction.valueDate, - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/seb-kort-bank-ab.js b/src/app-gocardless/banks/seb-kort-bank-ab.js index f5c32727..d53e8177 100644 --- a/src/app-gocardless/banks/seb-kort-bank-ab.js +++ b/src/app-gocardless/banks/seb-kort-bank-ab.js @@ -3,7 +3,6 @@ import { amountToInteger, sortByBookingDateOrValueDate, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -27,13 +26,11 @@ export default { * Sign of transaction amount needs to be flipped for SEB credit cards */ normalizeTransaction(transaction, _booked) { - // Creditor name is stored in additionInformation for SEB - transaction.creditorName = transaction.additionalInformation; - return { ...transaction, + // Creditor name is stored in additionInformation for SEB + creditorName: transaction.additionalInformation, date: transaction.valueDate, - payeeName: formatPayeeName(transaction), transactionAmount: { // Flip transaction amount sign amount: (-parseFloat(transaction.transactionAmount.amount)).toString(), diff --git a/src/app-gocardless/banks/seb-privat.js b/src/app-gocardless/banks/seb-privat.js index c1a3f8cc..fce6b0be 100644 --- a/src/app-gocardless/banks/seb-privat.js +++ b/src/app-gocardless/banks/seb-privat.js @@ -4,7 +4,6 @@ import { amountToInteger, printIban, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -32,21 +31,17 @@ export default { transaction.bookingDateTime || transaction.valueDate || transaction.valueDateTime; - // If we couldn't find a valid date field we filter out this transaction // and hope that we will import it again once the bank has processed the // transaction further. if (!date) { return null; } - - // Creditor name is stored in additionInformation for SEB - transaction.creditorName = transaction.additionalInformation; - return { ...transaction, + // Creditor name is stored in additionInformation for SEB + creditorName: transaction.additionalInformation, date: d.format(d.parseISO(date), 'yyyy-MM-dd'), - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/sparnord-spnodk22.js b/src/app-gocardless/banks/sparnord-spnodk22.js index a0704f6b..2f1b7a09 100644 --- a/src/app-gocardless/banks/sparnord-spnodk22.js +++ b/src/app-gocardless/banks/sparnord-spnodk22.js @@ -3,7 +3,6 @@ import { amountToInteger, printIban, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; const SORTED_BALANCE_TYPE_LIST = [ 'closingBooked', @@ -43,13 +42,10 @@ export default { * Banks on the BEC backend only give information regarding the transaction in additionalInformation */ normalizeTransaction(transaction, _booked) { - transaction.remittanceInformationUnstructured = - transaction.additionalInformation; - return { ...transaction, date: transaction.bookingDate, - payeeName: formatPayeeName(transaction), + remittanceInformationUnstructured: transaction.additionalInformation, }; }, diff --git a/src/app-gocardless/banks/spk-karlsruhe-karsde66.js b/src/app-gocardless/banks/spk-karlsruhe-karsde66.js index 602ad74c..94af8b66 100644 --- a/src/app-gocardless/banks/spk-karlsruhe-karsde66.js +++ b/src/app-gocardless/banks/spk-karlsruhe-karsde66.js @@ -3,7 +3,6 @@ import { amountToInteger, sortByBookingDateOrValueDate, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; /** @type {import('./bank.interface.js').IBank} */ export default { @@ -62,18 +61,16 @@ export default { remittanceInformationUnstructured += ' ' + transaction.additionalInformation; - transaction.remittanceInformationUnstructured = - remittanceInformationUnstructured; - - transaction.creditorName = + const usefulCreditorName = transaction.ultimateCreditor || transaction.creditorName || transaction.debtorName; return { ...transaction, + creditorName: usefulCreditorName, + remittanceInformationUnstructured: remittanceInformationUnstructured, date: transaction.bookingDate || transaction.valueDate, - payeeName: formatPayeeName(transaction), }; }, diff --git a/src/app-gocardless/banks/spk-marburg-biedenkopf-heladef1mar.js b/src/app-gocardless/banks/spk-marburg-biedenkopf-heladef1mar.js index 8740b9e9..70374131 100644 --- a/src/app-gocardless/banks/spk-marburg-biedenkopf-heladef1mar.js +++ b/src/app-gocardless/banks/spk-marburg-biedenkopf-heladef1mar.js @@ -3,7 +3,6 @@ import { amountToInteger, sortByBookingDateOrValueDate, } from '../utils.js'; -import { formatPayeeName } from '../../util/payee-name.js'; import d from 'date-fns'; const SORTED_BALANCE_TYPE_LIST = [ @@ -63,13 +62,10 @@ export default { transaction.remittanceInformationStructuredArray?.join(' '); } - transaction.remittanceInformationUnstructured = - remittanceInformationUnstructured; - return { ...transaction, date: d.format(d.parseISO(date), 'yyyy-MM-dd'), - payeeName: formatPayeeName(transaction), + remittanceInformationUnstructured: remittanceInformationUnstructured, }; }, diff --git a/src/app-gocardless/services/gocardless-service.js b/src/app-gocardless/services/gocardless-service.js index 7f32578b..4fa9769c 100644 --- a/src/app-gocardless/services/gocardless-service.js +++ b/src/app-gocardless/services/gocardless-service.js @@ -15,6 +15,7 @@ import * as nordigenNode from 'nordigen-node'; import * as uuid from 'uuid'; import jwt from 'jws'; import { SecretName, secretsService } from '../../services/secrets-service.js'; +import { formatPayeeName } from '../../util/payee-name.js'; const GoCardlessClient = nordigenNode.default; @@ -211,6 +212,16 @@ export const goCardlessService = { goCardlessService.getBalances(accountId), ]); + transactions.transactions.booked = transactions.transactions?.booked?.map(t => ({ + ...t, + payeeName: formatPayeeName(t), + })); + + transactions.transactions.pending = transactions.transactions?.pending?.map(t => ({ + ...t, + payeeName: formatPayeeName(t), + })); + const bank = BankFactory(institution_id); const sortedBookedTransactions = bank.sortTransactions( transactions.transactions?.booked,