167 lines
4.6 KiB
Python
167 lines
4.6 KiB
Python
from flask import Flask, Blueprint, request, jsonify, send_from_directory
|
|
import os
|
|
from app.api.services import (
|
|
RACCheckService,
|
|
DisbursementService,
|
|
CollectLoanService,
|
|
TransactionVerifyService,
|
|
PenalChargeService,
|
|
LienCheckService,
|
|
RepaymentService,
|
|
StatusCallService,
|
|
LoanStatusService,
|
|
SMSService,
|
|
BulkSMSService,
|
|
CompleteRACcheckService
|
|
)
|
|
from app.utils.logger import logger
|
|
from app.api.middlewares import require_api_key, require_app_id, enforce_json
|
|
|
|
|
|
api = Blueprint("api", __name__)
|
|
|
|
|
|
# Enforce json
|
|
@api.before_request
|
|
def cors_middleware():
|
|
"""Middleware applied globally to all API routes in this blueprint"""
|
|
return enforce_json()
|
|
|
|
|
|
# Swagger JSON file
|
|
@api.route("/swagger.json", methods=['GET'])
|
|
def swagger_json():
|
|
swagger_dir = os.path.join("swagger")
|
|
return send_from_directory(swagger_dir, "digifi_swagger.json")
|
|
|
|
|
|
@api.route('/swagger/<path:filename>')
|
|
def serve_paths(filename):
|
|
swagger_dir = os.path.join("swagger")
|
|
return send_from_directory(swagger_dir, filename)
|
|
|
|
# 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
|
|
|
|
# CompleteRACcheck Endpoint
|
|
@api.route('/CompleteRACcheck', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def complete_rac_check():
|
|
data = request.get_json()
|
|
# logger.info(f"CompleteRACcheck request received: {data}")
|
|
response = CompleteRACcheckService.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
|
|
|
|
# LoanStatus Endpoint
|
|
@api.route('/LoanStatus', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def loan_status():
|
|
data = request.get_json()
|
|
# logger.info(f"LoanStatus request received: {data}")
|
|
response = LoanStatusService.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
|
|
|
|
# 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
|
|
|
|
# Repayment Endpoint - Added based on updated Repayment.json
|
|
@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
|
|
|
|
# StatusCall Endpoint - Added based on updated StatusCall.json
|
|
@api.route('/StatusCall', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def status_call():
|
|
data = request.get_json()
|
|
# logger.info(f"StatusCall request received: {data}")
|
|
response = StatusCallService.process_request(data)
|
|
return response
|
|
|
|
# SMS Endpoint - Added based on Swagger JSON
|
|
@api.route('/SMS', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def sms():
|
|
data = request.get_json()
|
|
# logger.info(f"SMS request received: {data}")
|
|
response = SMSService.process_request(data)
|
|
return response
|
|
|
|
# BulkSMS Endpoint - Added based on Swagger JSON
|
|
@api.route('/BulkSMS', methods=['POST'])
|
|
@require_api_key
|
|
@require_app_id
|
|
def bulk_sms():
|
|
data = request.get_json()
|
|
# logger.info(f"BulkSMS request received: {data}")
|
|
response = BulkSMSService.process_request(data)
|
|
return response
|
|
|
|
# Health Check Endpoint
|
|
@api.route('/health', methods=['GET'])
|
|
def health_check():
|
|
return {"status": "ok"}, 200
|