56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
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"}
|