243 lines
7.0 KiB
Python
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
|