Fix transaction IDs and make Nordigen validation stricter

This commit is contained in:
2023-03-11 18:30:56 +00:00
parent af65433c55
commit 6d6b370327
2 changed files with 21 additions and 21 deletions

View File

@@ -1,9 +1,9 @@
from datetime import timedelta
from hashlib import sha256
import orjson
from django.conf import settings
from django.utils import timezone
from orjson import dumps
from core.clients.aggregator import AggregatorClient
from core.clients.base import BaseClient
@@ -250,17 +250,16 @@ class NordigenClient(BaseClient, AggregatorClient):
def normalise_transactions(self, transactions, state=None):
for transaction in transactions:
# Rename ID
if "transactionId" in transaction:
if transaction["transactionId"]:
transaction["transaction_id"] = transaction["transactionId"]
del transaction["transactionId"]
elif "internalTransactionId" in transaction:
elif transaction["internalTransactionId"]:
transaction["transaction_id"] = transaction["internalTransactionId"]
del transaction["internalTransactionId"]
else:
# No transaction ID. This is a problem for our implementation
tx_hash = sha256(
dumps(transaction, sort_keys=True).encode("utf8")
orjson.dumps(transaction, option=orjson.OPT_SORT_KEYS)
).hexdigest()
transaction["transaction_id"] = tx_hash