forked from DigiFi/digifi-BankToProductCore
211 lines
5.6 KiB
Python
211 lines
5.6 KiB
Python
from flask import Blueprint, request, jsonify
|
|
from app.services import (
|
|
EligibilityCheckService,
|
|
SelectOfferService,
|
|
ProvideLoanService,
|
|
LoanInformationService,
|
|
RepaymentService,
|
|
CustomerConsentService,
|
|
NotificationCallbackService,
|
|
RACCheckService,
|
|
DisbursementService,
|
|
CollectLoanService,
|
|
TransactionVerifyService,
|
|
PenalChargeService,
|
|
RevokeEnableConsentService,
|
|
TokenValidationService,
|
|
LienCheckService,
|
|
NewTransactionCheckService
|
|
)
|
|
from app.utils.logger import logger
|
|
from app.middlewares import require_api_key, require_app_id, enforce_json
|
|
|
|
|
|
api = Blueprint("api", __name__)
|
|
|
|
|
|
@api.before_request
|
|
def cors_middleware():
|
|
"""Middleware applied globally to all API routes in this blueprint"""
|
|
return enforce_json()
|
|
|
|
|
|
# EligibilityCheck Endpoint
|
|
@api.route('/EligibilityCheck', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def eligibility_check():
|
|
data = request.get_json()
|
|
# logger.info(f"EligibilityCheck request received: {data}")
|
|
response = EligibilityCheckService.process_request(data)
|
|
return response
|
|
|
|
# SelectOffer Endpoint
|
|
@api.route('/SelectOffer', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def select_offer():
|
|
data = request.get_json()
|
|
# logger.info(f"SelectOffer request received: {data}")
|
|
response = SelectOfferService.process_request(data)
|
|
return response
|
|
|
|
|
|
# ProvideLoan Endpoint
|
|
@api.route('/ProvideLoan', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def provide_loan():
|
|
data = request.get_json()
|
|
# logger.info(f"ProvideLoan request received: {data}")
|
|
response = ProvideLoanService.process_request(data)
|
|
return response
|
|
|
|
|
|
# LoanInformation Endpoint
|
|
@api.route('/LoanInformation', methods=['GET'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def loan_information():
|
|
data = request.args.to_dict()
|
|
# logger.info(f"LoanInformation request received: {data}")
|
|
response = LoanInformationService.process_request(data)
|
|
return response
|
|
|
|
|
|
# Repayment Endpoint
|
|
@api.route('/Repayment', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def repayment():
|
|
data = request.get_json()
|
|
# logger.info(f"Repayment request received: {data}")
|
|
response = RepaymentService.process_request(data)
|
|
return response
|
|
|
|
|
|
# CustomerConsent Endpoint
|
|
@api.route('/CustomerConsent', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def customer_consent():
|
|
data = request.get_json()
|
|
# logger.info(f"CustomerConsent request received: {data}")
|
|
response = CustomerConsentService.process_request(data)
|
|
return response
|
|
|
|
|
|
# NotificationCallback Endpoint
|
|
@api.route('/NotificationCallback', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def notification_callback():
|
|
data = request.get_json()
|
|
# logger.info(f"NotificationCallback request received: {data}")
|
|
response = NotificationCallbackService.process_request(data)
|
|
return response
|
|
|
|
|
|
# RACCheck Endpoint
|
|
@api.route('/RACCheck', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def rac_check():
|
|
data = request.get_json()
|
|
# logger.info(f"RACCheck request received: {data}")
|
|
response = RACCheckService.process_request(data)
|
|
return response
|
|
|
|
|
|
# Disbursement Endpoint
|
|
@api.route('/Disbursement', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def disbursement():
|
|
data = request.get_json()
|
|
# logger.info(f"Disbursement request received: {data}")
|
|
response = DisbursementService.process_request(data)
|
|
return response
|
|
|
|
|
|
# CollectLoan Endpoint
|
|
@api.route('/CollectLoan', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def collect_loan():
|
|
data = request.get_json()
|
|
# logger.info(f"CollectLoan request received: {data}")
|
|
response = CollectLoanService.process_request(data)
|
|
return response
|
|
|
|
|
|
# TransactionVerify Endpoint
|
|
@api.route('/TransactionVerify', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def transaction_verify():
|
|
data = request.get_json()
|
|
# logger.info(f"TransactionVerify request received: {data}")
|
|
response = TransactionVerifyService.process_request(data)
|
|
return response
|
|
|
|
|
|
# PenalCharge Endpoint
|
|
@api.route('/PenalCharge', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def penal_charge():
|
|
data = request.get_json()
|
|
# logger.info(f"PenalCharge request received: {data}")
|
|
response = PenalChargeService.process_request(data)
|
|
return response
|
|
|
|
|
|
# RevokeEnableConsent Endpoint
|
|
@api.route('/RevokeEnableConsent', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def revoke_enable_consent():
|
|
data = request.get_json()
|
|
# logger.info(f"RevokeEnableConsent request received: {data}")
|
|
response = RevokeEnableConsentService.process_request(data)
|
|
return response
|
|
|
|
|
|
# TokenValidation Endpoint
|
|
@api.route('/TokenValidation', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def token_validation():
|
|
data = request.get_json()
|
|
# logger.info(f"TokenValidation request received: {data}")
|
|
response = TokenValidationService.process_request(data)
|
|
return response
|
|
|
|
|
|
# LienCheck Endpoint
|
|
@api.route('/LienCheck', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def lien_check():
|
|
data = request.get_json()
|
|
# logger.info(f"LienCheck request received: {data}")
|
|
response = LienCheckService.process_request(data)
|
|
return response
|
|
|
|
|
|
# NewTransactionCheck Endpoint
|
|
@api.route('/NewTransactionCheck', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def new_transaction_check():
|
|
data = request.get_json()
|
|
# logger.info(f"NewTransactionCheck request received: {data}")
|
|
response = NewTransactionCheckService.process_request(data)
|
|
return response
|
|
|
|
|
|
# Health Check Endpoint
|
|
@api.route('/health', methods=['GET'])
|
|
def health_check():
|
|
return {"status": "ok"} , 200 |