47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
from django.conf import settings
|
|
import httpx
|
|
import json
|
|
from salary_analytics.config import SIMBRELLA_BASE_URL, SIMBRELLA_ENDPOINT_RAC_CHECKS
|
|
import logging
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
class SimbrellaIntegration:
|
|
BASE_URL = SIMBRELLA_BASE_URL
|
|
ENDPOINT_RAC_CHECKS = SIMBRELLA_ENDPOINT_RAC_CHECKS
|
|
|
|
@staticmethod
|
|
def rac_check(customer_id, account_id, transaction_id):
|
|
"""
|
|
Calls the RACCheck endpoit
|
|
"""
|
|
url = f"{SimbrellaIntegration.BASE_URL}/{SimbrellaIntegration.ENDPOINT_RAC_CHECKS}"
|
|
logger.info(f"Contacting Rack Checks EndPoint: {str(url)}", exc_info=True)
|
|
|
|
payload = {
|
|
"customerId": customer_id,
|
|
"accountId": account_id,
|
|
"transactionId": str(transaction_id),
|
|
"fbnTransactionId": str(transaction_id),
|
|
"countryCode": "NG",
|
|
"channel": "USSD"
|
|
}
|
|
|
|
headers = {
|
|
"Content-Type": "application/json",
|
|
"x-api-key": f"{settings.VALID_API_KEY}",
|
|
"App-Id": f"{settings.VALID_APP_ID}",
|
|
}
|
|
|
|
try:
|
|
response = httpx.post(url, json=payload, headers=headers, timeout=10.0)
|
|
|
|
logger.info(f"This is Response: {str(response)}", exc_info=True)
|
|
|
|
return response
|
|
|
|
except Exception as e:
|
|
logger.error(f"RACCheck API call failed: {str(e)}", exc_info=True)
|
|
raise Exception(f"RACCheck API call failed: {str(e)}")
|
|
|