Skip to content
This repository has been archived by the owner on Feb 10, 2025. It is now read-only.

Commit

Permalink
Move bank sync payee name normalisation from actual to `actual-serv…
Browse files Browse the repository at this point in the history
…er` (#353)
  • Loading branch information
matt-fidd authored Jul 9, 2024
1 parent 17cdea9 commit 3661c15
Show file tree
Hide file tree
Showing 25 changed files with 304 additions and 28 deletions.
8 changes: 6 additions & 2 deletions src/app-gocardless/banks/abanca-caglesmm.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import Fallback from './integration-bank.js';

import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
...Fallback,
Expand All @@ -10,10 +12,12 @@ export default {

// Abanca transactions doesn't get the creditorName/debtorName properly
normalizeTransaction(transaction, _booked) {
transaction.creditorName = transaction.remittanceInformationStructured;
transaction.debtorName = transaction.remittanceInformationStructured;

return {
...transaction,
creditorName: transaction.remittanceInformationStructured,
debtorName: transaction.remittanceInformationStructured,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate || transaction.valueDate,
};
},
Expand Down
2 changes: 2 additions & 0 deletions src/app-gocardless/banks/american-express-aesudef1.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand Down Expand Up @@ -29,6 +30,7 @@ export default {
normalizeTransaction(transaction, _booked) {
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate,
};
},
Expand Down
15 changes: 9 additions & 6 deletions src/app-gocardless/banks/bankinter-bkbkesmm.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { printIban } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand All @@ -23,14 +24,16 @@ 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,
debtorName: transaction.debtorName?.replaceAll(';', ' '),
creditorName: transaction.creditorName?.replaceAll(';', ' '),
remittanceInformationUnstructured:
transaction.remittanceInformationUnstructured
.replaceAll(/\/Txt\/(\w\|)?/gi, '')
.replaceAll(';', ' '),
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate || transaction.valueDate,
};
},
Expand Down
3 changes: 3 additions & 0 deletions src/app-gocardless/banks/belfius_gkccbebb.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import Fallback from './integration-bank.js';

import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
...Fallback,
Expand All @@ -15,6 +17,7 @@ export default {
return {
...transaction,
transactionId: transaction.internalTransactionId,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate || transaction.valueDate,
};
},
Expand Down
6 changes: 5 additions & 1 deletion src/app-gocardless/banks/bnp-be-gebabebb.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import Fallback from './integration-bank.js';

import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
...Fallback,
Expand Down Expand Up @@ -66,9 +68,11 @@ export default {
}
}

transaction.creditorName = creditorName;

return {
...transaction,
creditorName: creditorName,
payeeName: formatPayeeName(transaction),
date: transaction.valueDate || transaction.bookingDate,
};
},
Expand Down
2 changes: 2 additions & 0 deletions src/app-gocardless/banks/danskebank-dabno22.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { printIban, amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand Down Expand Up @@ -42,6 +43,7 @@ export default {
*/
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate,
};
},
Expand Down
6 changes: 4 additions & 2 deletions src/app-gocardless/banks/ing-ingddeff.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { printIban, amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand All @@ -26,13 +27,14 @@ export default {
const remittanceInformationMatch = /remittanceinformation:(.*)$/.exec(
transaction.remittanceInformationUnstructured,
);
const remittanceInformation = remittanceInformationMatch

transaction.remittanceInformationUnstructured = remittanceInformationMatch
? remittanceInformationMatch[1]
: transaction.remittanceInformationUnstructured;

return {
...transaction,
remittanceInformationUnstructured: remittanceInformation,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate || transaction.valueDate,
};
},
Expand Down
2 changes: 2 additions & 0 deletions src/app-gocardless/banks/ing-pl-ingbplpw.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { printIban, amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand All @@ -25,6 +26,7 @@ export default {
normalizeTransaction(transaction, _booked) {
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate || transaction.valueDate,
};
},
Expand Down
4 changes: 3 additions & 1 deletion src/app-gocardless/banks/integration-bank.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import * as d from 'date-fns';
import {
sortByBookingDateOrValueDate,
amountToInteger,
printIban,
sortByBookingDateOrValueDate,
} from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

const SORTED_BALANCE_TYPE_LIST = [
'closingBooked',
Expand Down Expand Up @@ -59,6 +60,7 @@ export default {
}
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: d.format(d.parseISO(date), 'yyyy-MM-dd'),
};
},
Expand Down
2 changes: 2 additions & 0 deletions src/app-gocardless/banks/mbank-retail-brexplpw.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { printIban, amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand All @@ -25,6 +26,7 @@ export default {
normalizeTransaction(transaction, _booked) {
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate || transaction.valueDate,
};
},
Expand Down
2 changes: 0 additions & 2 deletions src/app-gocardless/banks/nationwide-naiagb21.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ export default {
transaction.bookingDate = useDate.toISOString().slice(0, 10);
}

console.log(transaction);

// Nationwide also occasionally returns erroneous transaction_ids
// that are malformed and can even change after import. This will ignore
// these ids and unset them. When a correct ID is returned then it will
Expand Down
4 changes: 4 additions & 0 deletions src/app-gocardless/banks/norwegian-xx-norwnok1.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { printIban, amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand Down Expand Up @@ -33,6 +34,7 @@ export default {
if (booked) {
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate,
};
}
Expand All @@ -52,6 +54,7 @@ export default {
if (transaction.valueDate !== undefined) {
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: transaction.valueDate,
};
}
Expand All @@ -64,6 +67,7 @@ export default {
transaction.valueDate = matches[1];
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: matches[1],
};
}
Expand Down
2 changes: 2 additions & 0 deletions src/app-gocardless/banks/sandboxfinance-sfin0000.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { printIban, amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand Down Expand Up @@ -33,6 +34,7 @@ export default {
normalizeTransaction(transaction, _booked) {
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate || transaction.valueDate,
};
},
Expand Down
17 changes: 10 additions & 7 deletions src/app-gocardless/banks/seb-kort-bank-ab.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { printIban, amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand Down Expand Up @@ -30,16 +31,18 @@ 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;
transaction.transactionAmount = {
// Flip transaction amount sign
amount: (-parseFloat(transaction.transactionAmount.amount)).toString(),
currency: transaction.transactionAmount.currency,
};

return {
...transaction,
// Creditor name is stored in additionInformation for SEB
creditorName: transaction.additionalInformation,
payeeName: formatPayeeName(transaction),
date: transaction.valueDate,
transactionAmount: {
// Flip transaction amount sign
amount: (-parseFloat(transaction.transactionAmount.amount)).toString(),
currency: transaction.transactionAmount.currency,
},
};
},

Expand Down
8 changes: 6 additions & 2 deletions src/app-gocardless/banks/seb-privat.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import Fallback from './integration-bank.js';

import * as d from 'date-fns';
import { amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand All @@ -23,10 +24,13 @@ export default {
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,
payeeName: formatPayeeName(transaction),
date: d.format(d.parseISO(date), 'yyyy-MM-dd'),
};
},
Expand Down
7 changes: 6 additions & 1 deletion src/app-gocardless/banks/sparnord-spnodk22.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import Fallback from './integration-bank.js';

import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
...Fallback,
Expand All @@ -16,10 +18,13 @@ export default {
* Banks on the BEC backend only give information regarding the transaction in additionalInformation
*/
normalizeTransaction(transaction, _booked) {
transaction.remittanceInformationUnstructured =
transaction.additionalInformation;

return {
...transaction,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate,
remittanceInformationUnstructured: transaction.additionalInformation,
};
},
};
8 changes: 6 additions & 2 deletions src/app-gocardless/banks/spk-karlsruhe-karsde66.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Fallback from './integration-bank.js';

import { printIban, amountToInteger } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand Down Expand Up @@ -66,10 +67,13 @@ export default {
transaction.creditorName ||
transaction.debtorName;

transaction.creditorName = usefulCreditorName;
transaction.remittanceInformationUnstructured =
remittanceInformationUnstructured;

return {
...transaction,
creditorName: usefulCreditorName,
remittanceInformationUnstructured: remittanceInformationUnstructured,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate || transaction.valueDate,
};
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import Fallback from './integration-bank.js';

import { printIban } from '../utils.js';
import d from 'date-fns';
import { printIban } from '../utils.js';
import { formatPayeeName } from '../../util/payee-name.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
Expand Down Expand Up @@ -52,10 +53,13 @@ export default {
transaction.remittanceInformationStructuredArray?.join(' ');
}

transaction.remittanceInformationUnstructured =
remittanceInformationUnstructured;

return {
...transaction,
payeeName: formatPayeeName(transaction),
date: d.format(d.parseISO(date), 'yyyy-MM-dd'),
remittanceInformationUnstructured: remittanceInformationUnstructured,
};
},
};
Loading

0 comments on commit 3661c15

Please sign in to comment.