Multiple event monitoring added

This commit is contained in:
CHIEFSOFT\ameye
2025-04-13 20:32:54 -04:00
parent 4ebc1dbfe0
commit 309bf0b138
3 changed files with 119 additions and 104 deletions
+14 -2
View File
@@ -51,7 +51,10 @@ class KafkaIntegration:
:return: The message value (decoded) or None if no message is received :return: The message value (decoded) or None if no message is received
""" """
consumer = KafkaIntegration._get_consumer() consumer = KafkaIntegration._get_consumer()
consumer.subscribe([topic]) # consumer.subscribe(["LOAN_REPAYMENT"])
# consumer.subscribe([topic])
consumer.subscribe(['LOAN_REPAYMENT', 'PROCESS_PAYMENT'])
logger.info( logger.info(
f"Waiting for messages from topic {topic} with this timeout: {timeout}..." f"Waiting for messages from topic {topic} with this timeout: {timeout}..."
@@ -94,7 +97,16 @@ class KafkaIntegration:
logger.info( logger.info(
f"Received message from {msg.topic()} [{msg.partition()}] @ offset {msg.offset()}: {message}" 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 return message
+5 -2
View File
@@ -9,15 +9,18 @@ autocall_bp = Blueprint("autocall", __name__)
@autocall_bp.route("/refresh-verify-disbursement", methods=["GET"]) @autocall_bp.route("/refresh-verify-disbursement", methods=["GET"])
def verify_transaction(): def verify_transaction():
data = request.json() data = request.json()
api_url = f"{BASE_URL}/Disbursement"
logger.info(f"Calling Verify Components") logger.info(f"Calling Verify Components")
return jsonify(data), 200 return jsonify(data), 200
@autocall_bp.route("/refresh-disbursement", methods=["GET"]) @autocall_bp.route("/refresh-disbursement", methods=["GET"])
def disbursement(): def disbursement():
data = request.json() data = request.json()
api_url = f"{BASE_URL}/Disbursement"
logger.info(f"Calling Disbursement Components") logger.info(f"Calling Disbursement Components")
return jsonify(data), 200 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
+100 -100
View File
@@ -123,35 +123,35 @@ def repayment():
return jsonify(response), 200 return jsonify(response), 200
@loan_bp.route("/rac-check", methods=["POST"]) # @loan_bp.route("/rac-check", methods=["POST"])
def rac_check(): # def rac_check():
data = request.json # data = request.json
api_url = f"{BASE_URL}/RACCheck" # api_url = f"{BASE_URL}/RACCheck"
#
# response = requests.post(api_url, json=data, headers=get_headers()) # # response = requests.post(api_url, json=data, headers=get_headers())
# return jsonify(response.json()), response.status_code # # return jsonify(response.json()), response.status_code
response = { # response = {
"transactionId": "T001", # "transactionId": "T001",
"customerId": "CN621868", # "customerId": "CN621868",
"accountId": "2017821799", # "accountId": "2017821799",
"RACResponse": { # "RACResponse": {
"Salary account": "1", # "Salary account": "1",
"BVN": "1", # "BVN": "1",
"BVNAttachedToAccount": "1", # "BVNAttachedToAccount": "1",
"CRMS": "1", # "CRMS": "1",
"CRC": "1", # "CRC": "1",
"AccountStatus": "1", # "AccountStatus": "1",
"Lien": "1", # "Lien": "1",
"NoBouncedCheck": "1", # "NoBouncedCheck": "1",
"Whitelist": "1", # "Whitelist": "1",
"NoPastDueSalaryLoan": "1", # "NoPastDueSalaryLoan": "1",
"NoPastDueOtherLoan": "1", # "NoPastDueOtherLoan": "1",
}, # },
"resultDescription": "RAC Check Successful", # "resultDescription": "RAC Check Successful",
} # }
#
return jsonify(response), 200 # return jsonify(response), 200
#
@loan_bp.route("/refresh-disbursement", methods=["GET"]) @loan_bp.route("/refresh-disbursement", methods=["GET"])
def disbursement(): def disbursement():
@@ -174,80 +174,80 @@ def disbursement():
# return jsonify(response.json()), response.status_code # 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():
data = request.json # data = request.json
api_url = f"{BASE_URL}/CollectLoan" # api_url = f"{BASE_URL}/CollectLoan"
#
# response = requests.post(api_url, json=data, headers=get_headers()) # # response = requests.post(api_url, json=data, headers=get_headers())
# return jsonify(response.json()), response.status_code # # return jsonify(response.json()), response.status_code
response = { # response = {
"transactionId": "T002", # "transactionId": "T002",
"debtId": "273194670", # "debtId": "273194670",
"customerId": "CN621868", # "customerId": "CN621868",
"accountId": "2017821799", # "accountId": "2017821799",
"productId": "101", # "productId": "101",
"collectAmount": 60000, # "collectAmount": 60000,
"penalCharge": 0, # "penalCharge": 0,
"lienAmount": 20000, # "lienAmount": 20000,
"countryId": "01", # "countryId": "01",
"comment": "Testing CollectionLoanRequest", # "comment": "Testing CollectionLoanRequest",
"resultCode": "00", # "resultCode": "00",
"resultDescription": "Loan Collection Successful", # "resultDescription": "Loan Collection Successful",
} # }
#
return jsonify(response), 200 # return jsonify(response), 200
@loan_bp.route("/verify-transactions", methods=["GET"]) # @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"
#
# response = requests.post(api_url, json=data, headers=get_headers()) # # response = requests.post(api_url, json=data, headers=get_headers())
# return jsonify(response.json()), response.status_code # # return jsonify(response.json()), response.status_code
response = { # response = {
"requestId": "R02802", # "requestId": "R02802",
"countryCode": "NGR", # "countryCode": "NGR",
"transactionId": "Tr201712RK9232P115", # "transactionId": "Tr201712RK9232P115",
"transactionType": "Disbursement", # "transactionType": "Disbursement",
"customerId": "CN621868", # "customerId": "CN621868",
"accountId": "2017821799", # "accountId": "2017821799",
"providedAmount": 100, # "providedAmount": 100,
"collectedAmount": 7.5, # "collectedAmount": 7.5,
"resultCode": "00", # "resultCode": "00",
"resultDescription": "Collect Status retrieved successfully.", # "resultDescription": "Collect Status retrieved successfully.",
} # }
#
return jsonify(response), 200 # return jsonify(response), 200
@loan_bp.route("/penal-charge", methods=["POST"]) # @loan_bp.route("/penal-charge", methods=["POST"])
def penal_charge(): # def penal_charge():
data = request.json # data = request.json
api_url = f"{BASE_URL}/PenalCharge" # api_url = f"{BASE_URL}/PenalCharge"
#
# response = requests.post(api_url, json=data, headers=get_headers()) # # response = requests.post(api_url, json=data, headers=get_headers())
# return jsonify(response.json()), response.status_code # # return jsonify(response.json()), response.status_code
response = { # response = {
"resultCode": "00", # "resultCode": "00",
"resultDescription": "Penal charge debited successfully", # "resultDescription": "Penal charge debited successfully",
} # }
#
return jsonify(response), 200 # return jsonify(response), 200
@loan_bp.route("/lien-check", methods=["POST"]) # @loan_bp.route("/lien-check", methods=["POST"])
def lien_check(): # def lien_check():
data = request.json # data = request.json
api_url = f"{BASE_URL}/LienCheck" # api_url = f"{BASE_URL}/LienCheck"
#
# response = requests.post(api_url, json=data, headers=get_headers()) # # response = requests.post(api_url, json=data, headers=get_headers())
# return jsonify(response.json()), response.status_code # # return jsonify(response.json()), response.status_code
response = { # response = {
"lienAmount": 20000, # "lienAmount": 20000,
"resultCode": "00", # "resultCode": "00",
"resultDescription": "Successful", # "resultDescription": "Successful",
} # }
#
return jsonify(response), 200 # return jsonify(response), 200