diff --git a/app/integrations/kafka.py b/app/integrations/kafka.py index 85bee8b..6aa1d95 100644 --- a/app/integrations/kafka.py +++ b/app/integrations/kafka.py @@ -3,6 +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 class KafkaIntegration: @@ -86,15 +87,13 @@ class KafkaIntegration: logger.info("Kafka consumer closed") @staticmethod - def _call_disbursement_endpoint(message, endpoint_url=f"{BASE_URL}/Disbursement"): - """Call an HTTP endpoint with the received message""" + def _call_disbursement_endpoint(message): + """Call the disbursement endpoint with the received message""" try: - response = requests.post(endpoint_url, json=message, timeout=5) - response.raise_for_status() + response = disbursement_endpoint(message) logger.info( - f"Successfully sent message to {endpoint_url}: {response.status_code}" + f"Successfully sent message to disbursement endpoint: {response.status_code}" ) - print(response.json()) - except requests.exceptions.RequestException as e: - logger.error(f"Failed to call endpoint {endpoint_url}: {e}") + except Exception as e: + logger.error(f"Failed to call disbursement endpoint: {e}") raise diff --git a/app/routes/loan.py b/app/routes/loan.py index 562ce22..64f82fd 100644 --- a/app/routes/loan.py +++ b/app/routes/loan.py @@ -153,14 +153,22 @@ def rac_check(): @loan_bp.route("/disbursement", methods=["POST"]) -def disbursement(): - data = request.json +def disbursement(data=None): + if data is None: + data = request.json + api_url = f"{BASE_URL}/Disbursement" - return jsonify({"requestId": data["requestId"]}), 200 - - # response = requests.post(api_url, json=data, headers=get_headers()) - # return jsonify(response.json()), response.status_code + response = requests.post( + api_url, + json=data, + headers=get_headers(), + auth=( + settings.BANK_CALL_BASIC_AUTH_USERNAME, + settings.BANK_CALL_BASIC_AUTH_PASSWORD, + ), + ) + return jsonify(response.json()), response.status_code @loan_bp.route("/collect-loan", methods=["POST"]) diff --git a/app/utils/auth.py b/app/utils/auth.py index 0ef72b2..5666957 100644 --- a/app/utils/auth.py +++ b/app/utils/auth.py @@ -1,8 +1,9 @@ import requests from flask import current_app + def get_headers(): return { - "Authorization": f"Bearer {current_app.config['JWT_SECRET_KEY']}", - "Content-Type": "application/json" + "Content-Type": "application/json", + "Accept": "application/json", }