From 018a8e7c4ec147a25b629a9d3f433daf826dc575 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sun, 9 Nov 2025 15:34:25 -0500 Subject: [PATCH] 2 new endpoint --- app/routes/autocall.py | 64 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/app/routes/autocall.py b/app/routes/autocall.py index 5a0f47b..2d551a5 100644 --- a/app/routes/autocall.py +++ b/app/routes/autocall.py @@ -98,6 +98,70 @@ def retry_disbursement(): logger.error(f"Failed to call retry disbursement {data}: {e}") +@autocall_bp.route("/verify-disbursement", methods=["POST"]) +def retry_verify_disbursement(): + try: + data = request.get_json() + logger.info(f"Verify Disbursement Transaction ID Data Received for :::: {data}") + + transactionId = data["transactionId"] + logger.info(f"Starting Transaction ID Data Received for :::: {transactionId}") + + logger.info(f"Calling Disbursement Components for Retry Transaction ID Data Received for :::: {transactionId}") + loan = LoanService.get_loan_by_transaction_id(transactionId) + if not loan: + logger.info(f"No loan found without disbursement date") + return 0 + logger.info(f"Calling DisburseLoan endpoint with data: {loan}") + loan_data = loan.to_dict() + + data = { + "transactionId": loan_data.get('transactionId'), + "FbnTransactionId": loan_data.get('transactionId'), + "debtId": str(loan_data.get('debtId')), + "customerId": loan_data.get('customerId'), + "accountId": loan_data.get('accountId'), + "productId": str(loan_data.get('productId', "")), + "provideAmount": loan_data.get('currentLoanAmount'), + } + # response = SimbrellaClient.disburse_loan(data) + # logger.info(f"Retry Disbursement Transaction ID Result Received for :::: {response}") + return ResponseHelper.success(message="Retry Disbursement Request Sent Successfully", status_code=200) + except Exception as e: + logger.error(f"Failed to call retry disbursement {data}: {e}") + +@autocall_bp.route("/start-repayment", methods=["POST"]) +def start_repayment(): + try: + data = request.get_json() + logger.info(f"Start Repay Transaction ID Data Received for :::: {data}") + + transactionId = data["transactionId"] + logger.info(f"Starting Transaction ID Data Received for :::: {transactionId}") + + logger.info(f"Calling Disbursement Components for Retry Transaction ID Data Received for :::: {transactionId}") + loan = LoanService.get_loan_by_transaction_id(transactionId) + if not loan: + logger.info(f"No loan found without disbursement date") + return 0 + logger.info(f"Calling DisburseLoan endpoint with data: {loan}") + loan_data = loan.to_dict() + + data = { + "transactionId": loan_data.get('transactionId'), + "FbnTransactionId": loan_data.get('transactionId'), + "debtId": str(loan_data.get('debtId')), + "customerId": loan_data.get('customerId'), + "accountId": loan_data.get('accountId'), + "productId": str(loan_data.get('productId', "")), + "provideAmount": loan_data.get('currentLoanAmount'), + } + # response = SimbrellaClient.disburse_loan(data) + # logger.info(f"Retry Disbursement Transaction ID Result Received for :::: {response}") + return ResponseHelper.success(message="Retry Disbursement Request Sent Successfully", status_code=200) + except Exception as e: + logger.error(f"Failed to call retry disbursement {data}: {e}") +