From f557fe900dc8f5add649d69602442034c4c75569 Mon Sep 17 00:00:00 2001 From: paulwer Date: Sat, 27 Jan 2024 10:32:44 +0100 Subject: [PATCH 1/3] changes --- .../Nordigen/Transformer/TransactionTransformer.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index 8d31ce1aeca2..422f59983af3 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -82,9 +82,15 @@ class TransactionTransformer implements BankRevenueInterface public function transformTransaction($transaction) { - if (!array_key_exists('transactionId', $transaction) || !array_key_exists('transactionAmount', $transaction)) + if ((!array_key_exists('transactionId', $transaction) && !array_key_exists('internalTransactionId', $transaction)) || !array_key_exists('transactionAmount', $transaction)) throw new \Exception('invalid dataset'); + $transactionId = ''; + if (array_key_exists('transactionId', $transaction)) + $transactionId = $transaction["transactionId"]; + else if (array_key_exists('internalTransactionId', $transaction)) + $transactionId = $transaction["internalTransactionId"]; + $amount = (float) $transaction["transactionAmount"]["amount"]; // description could be in varios places @@ -119,7 +125,7 @@ class TransactionTransformer implements BankRevenueInterface return [ 'transaction_id' => 0, - 'nordigen_transaction_id' => $transaction["transactionId"], + 'nordigen_transaction_id' => $transactionId, 'amount' => $amount, 'currency_id' => $this->convertCurrency($transaction["transactionAmount"]["currency"]), 'category_id' => null, From 8a0b80d64b5ba813c8ec836a675944770f0ed2e0 Mon Sep 17 00:00:00 2001 From: paulwer Date: Sat, 27 Jan 2024 10:49:13 +0100 Subject: [PATCH 2/3] code cleanups --- .../Bank/Nordigen/Transformer/TransactionTransformer.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index 422f59983af3..839177f4ed75 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -81,15 +81,14 @@ class TransactionTransformer implements BankRevenueInterface public function transformTransaction($transaction) { - - if ((!array_key_exists('transactionId', $transaction) && !array_key_exists('internalTransactionId', $transaction)) || !array_key_exists('transactionAmount', $transaction)) - throw new \Exception('invalid dataset'); - + // depending on institution, the result can be different, so we load the first available unique id $transactionId = ''; if (array_key_exists('transactionId', $transaction)) $transactionId = $transaction["transactionId"]; else if (array_key_exists('internalTransactionId', $transaction)) $transactionId = $transaction["internalTransactionId"]; + else + throw new \Exception('invalid dataset: missing transactionId - Please report this error to the developer'); $amount = (float) $transaction["transactionAmount"]["amount"]; From ab4eb688c8fb2b7ae9ff1e386b4f84f8b794d4d2 Mon Sep 17 00:00:00 2001 From: paulwer Date: Sat, 27 Jan 2024 10:52:16 +0100 Subject: [PATCH 3/3] better error-message --- .../Bank/Nordigen/Transformer/TransactionTransformer.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index 839177f4ed75..a18a9b4429cd 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -87,8 +87,10 @@ class TransactionTransformer implements BankRevenueInterface $transactionId = $transaction["transactionId"]; else if (array_key_exists('internalTransactionId', $transaction)) $transactionId = $transaction["internalTransactionId"]; - else + else { + nlog(`Invalid Input for nordigen transaction transformer: ` . $transaction); throw new \Exception('invalid dataset: missing transactionId - Please report this error to the developer'); + } $amount = (float) $transaction["transactionAmount"]["amount"];