from flask import Blueprint, request, jsonify, current_app import requests from app.config import settings from app.utils.auth import get_headers from app.utils.logger import logger loan_bp = Blueprint("loan", __name__) BASE_URL = settings.BANK_CALL_BASE_URL @loan_bp.route("/select-offer", methods=["POST"]) def select_offer(): data = request.json api_url = f"{BASE_URL}/SelectOffer" # response = requests.post(api_url, json=data, headers=get_headers()) # return jsonify(response.json()), response.status_code response = { "transactionId": "1231231321232", "customerId": "1256907", "accountId": "5948306019", "outstandingDebtAmount": 0, "loan": [ { "offerId": "14451", "productId": "2030", "amount": 10000, "upfrontPayment": 1000, "interestRate": 3, "Interest": 300, "ManagementRate": 1, "ManagementFee": 100, "InsuranceRate": 1, "InsuranceFee": 100, "VATRate": 7.5, "VATamount": 100, "recommendedRepaymentDates": ["2022-11-30"], "installmentAmount": 11000, "totalRepaymentAmount": 11000, } ], "resultCode": "00", "resultDescription": "Successful", } return jsonify(response), 200 @loan_bp.route("/provide-loan", methods=["POST"]) def provide_loan(): data = request.json api_url = f"{BASE_URL}/ProvideLoan" # response = requests.post(api_url, json=data, headers=get_headers()) # return jsonify(response.json()), response.status_code response = { "requestId": "202111170001371256908", "transactionId": "Tr201712RK9232P115", "customerId": "CN621868", "accountId": "ACN8263457", "msisdn": "3451342", "resultCode": "00", "resultDescription": "Successful", } return jsonify(response), 200 @loan_bp.route("/status", methods=["POST"]) def status(): data = request.json api_url = f"{BASE_URL}/LoanStatus" # response = requests.post(api_url, json=data, headers=get_headers()) # return jsonify(response.json()), response.status_code response = { "customerId": "CN621868", "transactionId": "Tr201712RK9232P115", "loans": [ { "debtId": "123456789", "loanDate": "2019-10-18 14:26:21.063", "dueDate": "2019-11-20 14:26:21.063", "currentLoanAmount": 8500, "initialLoanAmount": 10000, "defaultPenaltyFee": 0, "continuousFee": 0, "productId": "101", } ], "totalDebtAmount": 8500, "resultCode": "00", "resultDescription": "Successful", } return jsonify(response), 200 @loan_bp.route("/repayment", methods=["POST"]) def repayment(): data = request.json api_url = f"{BASE_URL}/Repayment" # response = requests.post(api_url, json=data, headers=get_headers()) # return jsonify(response.json()), response.status_code response = { "requestId": "R02802", "countryCode": "NGR", "transactionId": "Tr201712RK9232P115", "debtId": "273194670", "customerId": "CN621868", "accountId": "2017821799", "productId": "101", "collectedAmount": 60000, "penalCharge": 0, "lienAmount": 20000, "comment": "Testing CollectionLoanRequest", "resultCode": "00", "resultDescription": "Loan Collection 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(): data = request.json() api_url = f"{BASE_URL}/Disbursement" logger.info(f"Calling disbursement endpoint with data: {data}") 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(): # 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("/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