Files
digifi-EventManager/app/routes/loan.py
T
2025-04-10 16:46:46 +01:00

243 lines
7.0 KiB
Python

from flask import Blueprint, request, jsonify, current_app
import requests
from app.config import settings
from app.utils.auth import get_headers
loan_bp = Blueprint("loan", __name__)
BASE_URL = settings.SIMBRELLA_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("/disbursement", methods=["POST"])
def disbursement():
data = request.json
api_url = f"{BASE_URL}/Disbursement"
return jsonify({"requestId": data["requestId"]}), 200
# response = requests.post(api_url, json=data, headers=get_headers())
# 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("/transaction-verify", methods=["POST"])
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