Merge branch 'oluyemi' of DigiFi/digifi-EventManager into master
This commit is contained in:
@@ -3,3 +3,4 @@ __pycache__/
|
|||||||
*/__pycache__/
|
*/__pycache__/
|
||||||
.env
|
.env
|
||||||
app.log
|
app.log
|
||||||
|
.idea/
|
||||||
@@ -1 +1,2 @@
|
|||||||
from .kafka import KafkaIntegration
|
from .kafka import KafkaIntegration
|
||||||
|
from .simbrella import SimbrellaClient
|
||||||
@@ -3,7 +3,7 @@ import json
|
|||||||
from app.utils.logger import logger
|
from app.utils.logger import logger
|
||||||
from app.config import settings
|
from app.config import settings
|
||||||
import requests
|
import requests
|
||||||
from app.routes.loan import disbursement as disbursement_endpoint
|
from app.integrations.simbrella import SimbrellaClient
|
||||||
|
|
||||||
|
|
||||||
class KafkaIntegration:
|
class KafkaIntegration:
|
||||||
@@ -96,7 +96,7 @@ class KafkaIntegration:
|
|||||||
logger.info(f"Calling disbursement endpoint with message: {message}")
|
logger.info(f"Calling disbursement endpoint with message: {message}")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = disbursement_endpoint(message)
|
response = SimbrellaClient.disbursement(message)
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Successfully sent message to disbursement endpoint: {response.status_code}"
|
f"Successfully sent message to disbursement endpoint: {response.status_code}"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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
@@ -153,25 +153,26 @@ def rac_check():
|
|||||||
return jsonify(response), 200
|
return jsonify(response), 200
|
||||||
|
|
||||||
|
|
||||||
@loan_bp.route("/disbursement", methods=["POST"])
|
@loan_bp.route("/refresh-disbursement", methods=["GET"])
|
||||||
def disbursement(data=None):
|
def disbursement():
|
||||||
if data is None:
|
|
||||||
data = request.json
|
data = request.json()
|
||||||
|
|
||||||
api_url = f"{BASE_URL}/Disbursement"
|
api_url = f"{BASE_URL}/Disbursement"
|
||||||
|
|
||||||
logger.info(f"Calling disbursement endpoint with data: {data}")
|
logger.info(f"Calling disbursement endpoint with data: {data}")
|
||||||
|
|
||||||
response = requests.post(
|
return jsonify(data), 200
|
||||||
api_url,
|
#
|
||||||
json=data,
|
# response = requests.post(
|
||||||
headers=get_headers(),
|
# api_url,
|
||||||
)
|
# json=data,
|
||||||
|
# headers=get_headers(),
|
||||||
logger.info(f"Disbursement response: {response.json()}")
|
# )
|
||||||
|
#
|
||||||
return jsonify(response.json()), response.status_code
|
# logger.info(f"Disbursement response: {response.json()}")
|
||||||
|
|
||||||
|
# return jsonify(response.json()), response.status_code
|
||||||
|
|
||||||
@loan_bp.route("/collect-loan", methods=["POST"])
|
@loan_bp.route("/collect-loan", methods=["POST"])
|
||||||
def collect_loan():
|
def collect_loan():
|
||||||
@@ -198,7 +199,7 @@ def collect_loan():
|
|||||||
return jsonify(response), 200
|
return jsonify(response), 200
|
||||||
|
|
||||||
|
|
||||||
@loan_bp.route("/transaction-verify", methods=["POST"])
|
@loan_bp.route("/verify-transactions", methods=["GET"])
|
||||||
def transaction_verify():
|
def transaction_verify():
|
||||||
data = request.json
|
data = request.json
|
||||||
api_url = f"{BASE_URL}/TransactionVerify"
|
api_url = f"{BASE_URL}/TransactionVerify"
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ from app.config import settings
|
|||||||
|
|
||||||
def get_headers():
|
def get_headers():
|
||||||
return {
|
return {
|
||||||
'Content-Type': 'application/json',
|
"Content-Type": "application/json",
|
||||||
"x-api_key": settings.BANK_CALL_API_KEY,
|
"x-api_key": settings.BANK_CALL_API_KEY,
|
||||||
"App-Id": settings.BANK_CALL_APP_ID,
|
"App-Id": settings.BANK_CALL_APP_ID,
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -330,9 +330,9 @@ paths:
|
|||||||
responses:
|
responses:
|
||||||
200:
|
200:
|
||||||
description: A successful response
|
description: A successful response
|
||||||
/loans/disbursement:
|
/loans/refresh-disbursement:
|
||||||
post:
|
get:
|
||||||
summary: Disburse a loan
|
summary: Refresh disburse of a loan
|
||||||
requestBody:
|
requestBody:
|
||||||
required: true
|
required: true
|
||||||
content:
|
content:
|
||||||
@@ -434,8 +434,8 @@ paths:
|
|||||||
responses:
|
responses:
|
||||||
200:
|
200:
|
||||||
description: A successful response
|
description: A successful response
|
||||||
/loans/transaction-verify:
|
/loans/verify-transactions:
|
||||||
post:
|
get:
|
||||||
summary: Verify a transaction
|
summary: Verify a transaction
|
||||||
requestBody:
|
requestBody:
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@@ -6,19 +6,19 @@ from app.utils.logger import logger
|
|||||||
app = create_app()
|
app = create_app()
|
||||||
|
|
||||||
if __name__ != "__main__":
|
if __name__ != "__main__":
|
||||||
|
#
|
||||||
kafka = KafkaIntegration()
|
# kafka = KafkaIntegration()
|
||||||
|
#
|
||||||
logger.info("Starting Kafka consumer...")
|
# logger.info("Starting Kafka consumer...")
|
||||||
while True:
|
# while True:
|
||||||
message = kafka.receive_disbursement_messages(
|
# message = kafka.receive_disbursement_messages(
|
||||||
topic=settings.KAFKA_PAYMENT_TOPIC, timeout=settings.KAFKA_TIMEOUT
|
# topic=settings.KAFKA_PAYMENT_TOPIC, timeout=settings.KAFKA_TIMEOUT
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
if message:
|
# if message:
|
||||||
logger.info(f"Processed message: {message}")
|
# logger.info(f"Processed message: {message}")
|
||||||
else:
|
# else:
|
||||||
logger.info("No message received within timeout")
|
# logger.info("No message received within timeout")
|
||||||
|
|
||||||
# Expose WSGI app instance for Gunicorn
|
# Expose WSGI app instance for Gunicorn
|
||||||
wsgi_app = app
|
wsgi_app = app
|
||||||
|
|||||||
Reference in New Issue
Block a user