diff --git a/salary_analytics/rac_check.py b/salary_analytics/rac_check.py new file mode 100644 index 0000000..90ec681 --- /dev/null +++ b/salary_analytics/rac_check.py @@ -0,0 +1,47 @@ +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 + } \ No newline at end of file