#!/usr/bin/env python3 # encoding:utf-8 import logging import traceback from .config import BaseConfig from flask import Flask, request, render_template_string from flask_sqlalchemy import SQLAlchemy from flask_cors import CORS from .constant import error_response from .exception import BizException db = SQLAlchemy() logging.getLogger('apscheduler').setLevel(logging.CRITICAL) def create_app(): _app = Flask(__name__) # 添加配置文件 _app.config.from_object(BaseConfig) db.init_app(_app) CORS(_app) # with app.app_context(): # from . import views # Import routes # # from src.core.voip.bot import BotAgent # from .call import CallService # from .agent import AgentService, AgentOperService # from .esl.client import InboundClient, OutboundClient # # # agent = BotAgent(_app.logger) # agent, _outbound_client = None, None # _inbound_client = InboundClient(agent, _app.logger) # _outbound_client = OutboundClient(agent, _app.logger) # _call_service = CallService(_inbound_client, _app.logger) # _agent_service = AgentService(_inbound_client, _app.logger) # _agent_oper_service = AgentOperService(_inbound_client, _app.logger) # return _app, _inbound_client, _outbound_client, _call_service , _agent_service, _agent_oper_service return _app app = create_app() @app.errorhandler(BizException) def handle_biz_exception(error): traceback.print_exc() return error_response(msg=str(error), http_code=200) # Generic error handler for uncaught exceptions @app.errorhandler(Exception) def handle_generic_exception(error): traceback.print_exc() return error_response(msg=str(error), http_code=500) # Specific error handler for 404 Not Found errors @app.errorhandler(404) def handle_404_error(error): return error_response(msg="Resource not found", http_code=404) # Specific error handler for 400 Bad Request errors @app.errorhandler(400) def handle_400_error(error): return error_response(msg="Bad Request", http_code=400)