import requests import json from requests.auth import HTTPBasicAuth from app.utils.logger import logger from app.config import settings class SimbrellaIntegration: BASE_URL = settings.SIMBRELLA_BASE_URL @staticmethod def rac_check(customer_id, account_id, transaction_id): """ Calls the RACCheck endpoit """ url = f"{SimbrellaIntegration.BASE_URL}/RACCheck" payload = { "customerId": customer_id, "accountId": account_id, "transactionId": transaction_id, "RAC_Array": [ { "salaryAccount": True, "bvn": "12345678901", "crc": False, "crms": True, "accountStatus": "active", "lien": False, "noBouncedCheck": True, "existingLoan": False, "whitelist": True, "noPastDueSalaryLoan": True, "noPastDueOtherLoans": False } ] } logger.error(f"This is PayLoad: {str(payload)}",exc_info=True) headers = { 'Content-Type': 'application/json', 'x-api-key': f'{settings.VALID_API_KEY}', 'App-Id': f'{settings.VALID_APP_ID}' } try: response = requests.post(url, json=payload, timeout=10, headers=headers) logger.error(f"This is Response: {str(response)}", exc_info=True) # Raise an error for non-200 responses if response.status_code != 200: response.raise_for_status() return response.json() except requests.exceptions.RequestException as err: logger.error(f"RACCheck API call failed: {str(err)}", exc_info=True) return {"error": "RACCheck API error"}