from flask import Blueprint, request, jsonify, send_from_directory from app.eco.services import ( AuthorizationService, DisbursementService, CollectLoanService, DebtClosureNotificationService, SendSMSService ) from app.utils.logger import logger from flask_jwt_extended import jwt_required import os eco = Blueprint("eco", __name__) # Swagger JSON file @eco.route("/swagger.json", methods=["GET"]) def swagger_json(): swagger_dir = os.path.join("swagger") return send_from_directory(swagger_dir, "eco_digifi_swagger.json") @eco.route("/swagger/") def serve_paths(filename): swagger_dir = os.path.join("swagger") return send_from_directory(swagger_dir, filename) # Disbursement (Simbrella -> EcoBank) @eco.route("/Disbursement", methods=["POST"]) @jwt_required() def disbursement(): data = request.get_json() response = DisbursementService.process_request(data) return response # CollectLoan (Simbrella -> EcoBank) @eco.route("/CollectLoan", methods=["POST"]) @jwt_required() def collect_loan(): data = request.get_json() response = CollectLoanService.process_request(data) return response # Debt Closure Notification (Simbrella -> EcoBank) @eco.route("/DebtClosureNotification", methods=["POST"]) @jwt_required() def debt_closure(): data = request.get_json() response = DebtClosureNotificationService.process_request(data) return response # Send SMS (Simbrella -> EcoBank) @eco.route("/SendSMS", methods=["POST"]) @jwt_required() def send_sms(): data = request.get_json() response = SendSMSService.process_request(data) return response # Health Check @eco.route("/health", methods=["GET"]) def health_check(): return jsonify({"status": "ok"}), 200 # Authorize endpoint @eco.route("/Authorize", methods=["POST"]) def authorize(): data = request.get_json() response = AuthorizationService.process_request(data) return response # Authorize refresh endpoint @eco.route("/AuthorizeRefresh", methods=["POST"]) @jwt_required(refresh=True) def refresh(): response = AuthorizationService.process_refresh_request() return response