diff --git a/app/integrations/kafka.py b/app/integrations/kafka.py index c309263..34513d9 100644 --- a/app/integrations/kafka.py +++ b/app/integrations/kafka.py @@ -51,7 +51,10 @@ class KafkaIntegration: :return: The message value (decoded) or None if no message is received """ consumer = KafkaIntegration._get_consumer() - consumer.subscribe([topic]) + # consumer.subscribe(["LOAN_REPAYMENT"]) + # consumer.subscribe([topic]) + consumer.subscribe(['LOAN_REPAYMENT', 'PROCESS_PAYMENT']) + logger.info( f"Waiting for messages from topic {topic} with this timeout: {timeout}..." @@ -94,7 +97,16 @@ class KafkaIntegration: logger.info( f"Received message from {msg.topic()} [{msg.partition()}] @ offset {msg.offset()}: {message}" ) - KafkaIntegration._call_disbursement_endpoint(message) + current_topic = msg.topic() + + if current_topic=="PROCESS_PAYMENT": + KafkaIntegration._call_disbursement_endpoint(message) + + if current_topic=="LOAN_REPAYMENT": + # Do loan repayment call here + logger.info( + f"Loan Repayment message from {msg.topic()} [{msg.partition()}] @ offset {msg.offset()}: {message}" + ) return message diff --git a/app/routes/autocall.py b/app/routes/autocall.py index 9ca4f9a..530b8cc 100644 --- a/app/routes/autocall.py +++ b/app/routes/autocall.py @@ -9,15 +9,18 @@ autocall_bp = Blueprint("autocall", __name__) @autocall_bp.route("/refresh-verify-disbursement", methods=["GET"]) def verify_transaction(): data = request.json() - api_url = f"{BASE_URL}/Disbursement" logger.info(f"Calling Verify Components") return jsonify(data), 200 @autocall_bp.route("/refresh-disbursement", methods=["GET"]) def disbursement(): data = request.json() - api_url = f"{BASE_URL}/Disbursement" logger.info(f"Calling Disbursement Components") return jsonify(data), 200 +@autocall_bp.route("/payment-callback", methods=["POST"]) +def payment_callback(): + data = request.json() + logger.info(f"Calling Callback Components") + return jsonify(data), 200 \ No newline at end of file diff --git a/app/routes/loan.py b/app/routes/loan.py index 9d6283b..ea28cd0 100644 --- a/app/routes/loan.py +++ b/app/routes/loan.py @@ -123,35 +123,35 @@ def repayment(): return jsonify(response), 200 -@loan_bp.route("/rac-check", methods=["POST"]) -def rac_check(): - data = request.json - api_url = f"{BASE_URL}/RACCheck" - - # response = requests.post(api_url, json=data, headers=get_headers()) - # return jsonify(response.json()), response.status_code - response = { - "transactionId": "T001", - "customerId": "CN621868", - "accountId": "2017821799", - "RACResponse": { - "Salary account": "1", - "BVN": "1", - "BVNAttachedToAccount": "1", - "CRMS": "1", - "CRC": "1", - "AccountStatus": "1", - "Lien": "1", - "NoBouncedCheck": "1", - "Whitelist": "1", - "NoPastDueSalaryLoan": "1", - "NoPastDueOtherLoan": "1", - }, - "resultDescription": "RAC Check Successful", - } - - return jsonify(response), 200 - +# @loan_bp.route("/rac-check", methods=["POST"]) +# def rac_check(): +# data = request.json +# api_url = f"{BASE_URL}/RACCheck" +# +# # response = requests.post(api_url, json=data, headers=get_headers()) +# # return jsonify(response.json()), response.status_code +# response = { +# "transactionId": "T001", +# "customerId": "CN621868", +# "accountId": "2017821799", +# "RACResponse": { +# "Salary account": "1", +# "BVN": "1", +# "BVNAttachedToAccount": "1", +# "CRMS": "1", +# "CRC": "1", +# "AccountStatus": "1", +# "Lien": "1", +# "NoBouncedCheck": "1", +# "Whitelist": "1", +# "NoPastDueSalaryLoan": "1", +# "NoPastDueOtherLoan": "1", +# }, +# "resultDescription": "RAC Check Successful", +# } +# +# return jsonify(response), 200 +# @loan_bp.route("/refresh-disbursement", methods=["GET"]) def disbursement(): @@ -174,80 +174,80 @@ def disbursement(): # return jsonify(response.json()), response.status_code -@loan_bp.route("/collect-loan", methods=["POST"]) -def collect_loan(): - data = request.json - api_url = f"{BASE_URL}/CollectLoan" - - # response = requests.post(api_url, json=data, headers=get_headers()) - # return jsonify(response.json()), response.status_code - response = { - "transactionId": "T002", - "debtId": "273194670", - "customerId": "CN621868", - "accountId": "2017821799", - "productId": "101", - "collectAmount": 60000, - "penalCharge": 0, - "lienAmount": 20000, - "countryId": "01", - "comment": "Testing CollectionLoanRequest", - "resultCode": "00", - "resultDescription": "Loan Collection Successful", - } - - return jsonify(response), 200 +# @loan_bp.route("/collect-loan", methods=["POST"]) +# def collect_loan(): +# data = request.json +# api_url = f"{BASE_URL}/CollectLoan" +# +# # response = requests.post(api_url, json=data, headers=get_headers()) +# # return jsonify(response.json()), response.status_code +# response = { +# "transactionId": "T002", +# "debtId": "273194670", +# "customerId": "CN621868", +# "accountId": "2017821799", +# "productId": "101", +# "collectAmount": 60000, +# "penalCharge": 0, +# "lienAmount": 20000, +# "countryId": "01", +# "comment": "Testing CollectionLoanRequest", +# "resultCode": "00", +# "resultDescription": "Loan Collection Successful", +# } +# +# return jsonify(response), 200 -@loan_bp.route("/verify-transactions", methods=["GET"]) -def transaction_verify(): - data = request.json - api_url = f"{BASE_URL}/TransactionVerify" - - # response = requests.post(api_url, json=data, headers=get_headers()) - # return jsonify(response.json()), response.status_code - response = { - "requestId": "R02802", - "countryCode": "NGR", - "transactionId": "Tr201712RK9232P115", - "transactionType": "Disbursement", - "customerId": "CN621868", - "accountId": "2017821799", - "providedAmount": 100, - "collectedAmount": 7.5, - "resultCode": "00", - "resultDescription": "Collect Status retrieved successfully.", - } - - return jsonify(response), 200 +# @loan_bp.route("/verify-transactions", methods=["GET"]) +# def transaction_verify(): +# data = request.json +# api_url = f"{BASE_URL}/TransactionVerify" +# +# # response = requests.post(api_url, json=data, headers=get_headers()) +# # return jsonify(response.json()), response.status_code +# response = { +# "requestId": "R02802", +# "countryCode": "NGR", +# "transactionId": "Tr201712RK9232P115", +# "transactionType": "Disbursement", +# "customerId": "CN621868", +# "accountId": "2017821799", +# "providedAmount": 100, +# "collectedAmount": 7.5, +# "resultCode": "00", +# "resultDescription": "Collect Status retrieved successfully.", +# } +# +# return jsonify(response), 200 -@loan_bp.route("/penal-charge", methods=["POST"]) -def penal_charge(): - data = request.json - api_url = f"{BASE_URL}/PenalCharge" - - # response = requests.post(api_url, json=data, headers=get_headers()) - # return jsonify(response.json()), response.status_code - response = { - "resultCode": "00", - "resultDescription": "Penal charge debited successfully", - } - - return jsonify(response), 200 +# @loan_bp.route("/penal-charge", methods=["POST"]) +# def penal_charge(): +# data = request.json +# api_url = f"{BASE_URL}/PenalCharge" +# +# # response = requests.post(api_url, json=data, headers=get_headers()) +# # return jsonify(response.json()), response.status_code +# response = { +# "resultCode": "00", +# "resultDescription": "Penal charge debited successfully", +# } +# +# return jsonify(response), 200 -@loan_bp.route("/lien-check", methods=["POST"]) -def lien_check(): - data = request.json - api_url = f"{BASE_URL}/LienCheck" - - # response = requests.post(api_url, json=data, headers=get_headers()) - # return jsonify(response.json()), response.status_code - response = { - "lienAmount": 20000, - "resultCode": "00", - "resultDescription": "Successful", - } - - return jsonify(response), 200 +# @loan_bp.route("/lien-check", methods=["POST"]) +# def lien_check(): +# data = request.json +# api_url = f"{BASE_URL}/LienCheck" +# +# # response = requests.post(api_url, json=data, headers=get_headers()) +# # return jsonify(response.json()), response.status_code +# response = { +# "lienAmount": 20000, +# "resultCode": "00", +# "resultDescription": "Successful", +# } +# +# return jsonify(response), 200