Fix transaction IDs and make Nordigen validation stricter
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user