From 5214594fabaf7ae0dd0612e9b61934af5bb645ea Mon Sep 17 00:00:00 2001 From: "oluyemi.a.simbrellang.com" Date: Fri, 11 Apr 2025 16:11:45 +0100 Subject: [PATCH] move action to SimbrellaClient integration --- .gitignore | 3 ++- app/integrations/__init__.py | 1 + app/integrations/kafka.py | 4 ++-- app/integrations/simbrella.py | 26 ++++++++++++++++++++++++++ wsgi.py | 26 +++++++++++++------------- 5 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 app/integrations/simbrella.py diff --git a/.gitignore b/.gitignore index 0ea0879..f5ccd79 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ __pycache__/ */__pycache__/ .env -app.log \ No newline at end of file +app.log +.idea/ \ No newline at end of file diff --git a/app/integrations/__init__.py b/app/integrations/__init__.py index f19ae60..7e9a8e2 100644 --- a/app/integrations/__init__.py +++ b/app/integrations/__init__.py @@ -1 +1,2 @@ from .kafka import KafkaIntegration +from .simbrella import SimbrellaClient \ No newline at end of file diff --git a/app/integrations/kafka.py b/app/integrations/kafka.py index 0afc813..de1f661 100644 --- a/app/integrations/kafka.py +++ b/app/integrations/kafka.py @@ -3,7 +3,7 @@ import json from app.utils.logger import logger from app.config import settings import requests -from app.routes.loan import disbursement as disbursement_endpoint +from app.integrations.simbrella import SimbrellaClient class KafkaIntegration: @@ -96,7 +96,7 @@ class KafkaIntegration: logger.info(f"Calling disbursement endpoint with message: {message}") try: - response = disbursement_endpoint(message) + response = SimbrellaClient.disbursement(message) logger.info( f"Successfully sent message to disbursement endpoint: {response.status_code}" ) diff --git a/app/integrations/simbrella.py b/app/integrations/simbrella.py new file mode 100644 index 0000000..26ce965 --- /dev/null +++ b/app/integrations/simbrella.py @@ -0,0 +1,26 @@ +import requests +from app.config import settings +from app.utils.auth import get_headers +from app.utils.logger import logger +from flask import jsonify + +class SimbrellaClient: + + BASE_URL = settings.BANK_CALL_BASE_URL + + @staticmethod + def disbursement(data): + + api_url = f"{SimbrellaClient.BASE_URL}/Disbursement" + + logger.info(f"Calling disbursement endpoint with data: {data}") + + response = requests.post( + api_url, + json=data, + headers=get_headers() + ) + + logger.info(f"Disbursement response: {response.json()}") + + return jsonify(response.json()), response.status_code \ No newline at end of file diff --git a/wsgi.py b/wsgi.py index 1c3b9e8..32de55c 100644 --- a/wsgi.py +++ b/wsgi.py @@ -6,19 +6,19 @@ from app.utils.logger import logger app = create_app() if __name__ != "__main__": - - kafka = KafkaIntegration() - - logger.info("Starting Kafka consumer...") - while True: - message = kafka.receive_disbursement_messages( - topic=settings.KAFKA_PAYMENT_TOPIC, timeout=settings.KAFKA_TIMEOUT - ) - - if message: - logger.info(f"Processed message: {message}") - else: - logger.info("No message received within timeout") + # + # kafka = KafkaIntegration() + # + # logger.info("Starting Kafka consumer...") + # while True: + # message = kafka.receive_disbursement_messages( + # topic=settings.KAFKA_PAYMENT_TOPIC, timeout=settings.KAFKA_TIMEOUT + # ) + # + # if message: + # logger.info(f"Processed message: {message}") + # else: + # logger.info("No message received within timeout") # Expose WSGI app instance for Gunicorn wsgi_app = app