Merge branch 'oluyemi' of DigiFi/digifi-EventManager into master

This commit is contained in:
2025-04-11 15:46:07 +00:00
committed by Gogs
8 changed files with 65 additions and 36 deletions
+2 -1
View File
@@ -2,4 +2,5 @@
__pycache__/
*/__pycache__/
.env
app.log
app.log
.idea/
+1
View File
@@ -1 +1,2 @@
from .kafka import KafkaIntegration
from .simbrella import SimbrellaClient
+2 -2
View File
@@ -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}"
)
+26
View File
@@ -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
+15 -14
View File
@@ -153,25 +153,26 @@ def rac_check():
return jsonify(response), 200
@loan_bp.route("/disbursement", methods=["POST"])
def disbursement(data=None):
if data is None:
data = request.json
@loan_bp.route("/refresh-disbursement", methods=["GET"])
def disbursement():
data = request.json()
api_url = f"{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
return jsonify(data), 200
#
# response = requests.post(
# api_url,
# json=data,
# headers=get_headers(),
# )
#
# logger.info(f"Disbursement response: {response.json()}")
# return jsonify(response.json()), response.status_code
@loan_bp.route("/collect-loan", methods=["POST"])
def collect_loan():
@@ -198,7 +199,7 @@ def collect_loan():
return jsonify(response), 200
@loan_bp.route("/transaction-verify", methods=["POST"])
@loan_bp.route("/verify-transactions", methods=["GET"])
def transaction_verify():
data = request.json
api_url = f"{BASE_URL}/TransactionVerify"
+1 -1
View File
@@ -3,7 +3,7 @@ from app.config import settings
def get_headers():
return {
'Content-Type': 'application/json',
"Content-Type": "application/json",
"x-api_key": settings.BANK_CALL_API_KEY,
"App-Id": settings.BANK_CALL_APP_ID,
}
+5 -5
View File
@@ -330,9 +330,9 @@ paths:
responses:
200:
description: A successful response
/loans/disbursement:
post:
summary: Disburse a loan
/loans/refresh-disbursement:
get:
summary: Refresh disburse of a loan
requestBody:
required: true
content:
@@ -434,8 +434,8 @@ paths:
responses:
200:
description: A successful response
/loans/transaction-verify:
post:
/loans/verify-transactions:
get:
summary: Verify a transaction
requestBody:
required: true
+13 -13
View File
@@ -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