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