47 lines
2.0 KiB
Python
47 lines
2.0 KiB
Python
import json
|
|
from datetime import datetime, timezone
|
|
import logging
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
class RACCheckService:
|
|
def __init__(self):
|
|
self._rac_checks = [] # In-memory storage for demonstration
|
|
|
|
def add_rac_check(self, customer_id, account_id, transaction_id, data=None):
|
|
rac_check = {
|
|
'id': len(self._rac_checks) + 1,
|
|
'transaction_id': transaction_id,
|
|
'customer_id': customer_id,
|
|
'account_id': account_id,
|
|
'rac_response': json.dumps(data or {}),
|
|
'created_at': datetime.now(timezone.utc),
|
|
'updated_at': datetime.now(timezone.utc)
|
|
}
|
|
self._rac_checks.append(rac_check)
|
|
logger.info(f"Added RAC check: {rac_check}")
|
|
return rac_check
|
|
|
|
def get_all_rac_checks(self):
|
|
logger.info(f"Retrieving all RAC checks. Count: {len(self._rac_checks)}")
|
|
return self._rac_checks if self._rac_checks else None
|
|
|
|
def get_rac_check(self, customer_id, account_id):
|
|
for rac_check in self._rac_checks:
|
|
if rac_check['customer_id'] == customer_id and rac_check['account_id'] == account_id:
|
|
logger.info(f"Retrieved RAC check for customer_id={customer_id}, account_id={account_id}: {rac_check}")
|
|
return rac_check
|
|
logger.error(f"RAC Check for customer_id={customer_id}, account_id={account_id} not found")
|
|
raise ValueError("RAC Check for customer not found")
|
|
|
|
def to_dict(self, rac_check):
|
|
logger.debug(f"Converting RAC check to dict: {rac_check}")
|
|
return {
|
|
"id": str(rac_check["id"]),
|
|
"transactionId": str(rac_check["transaction_id"]),
|
|
"customerId": rac_check["customer_id"],
|
|
"accountId": rac_check["account_id"],
|
|
"racResponse": json.loads(rac_check["rac_response"]),
|
|
"createdAt": rac_check["created_at"].isoformat(),
|
|
"updatedAt": rac_check["updated_at"].isoformat() if rac_check["updated_at"] else None
|
|
} |