__init__.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/usr/bin/env python3
  2. # encoding:utf-8
  3. import logging
  4. import traceback
  5. from .config import BaseConfig
  6. from flask import Flask, request, render_template_string
  7. from flask_sqlalchemy import SQLAlchemy
  8. from flask_cors import CORS
  9. # from prometheus_flask_exporter import PrometheusMetrics
  10. from .constant import error_response
  11. from .exception import BizException
  12. db = SQLAlchemy()
  13. logging.getLogger('apscheduler').setLevel(logging.CRITICAL)
  14. def create_app():
  15. _app = Flask(__name__)
  16. # _metrics = PrometheusMetrics(_app)
  17. # 添加配置文件
  18. _app.config.from_object(BaseConfig)
  19. db.init_app(_app)
  20. CORS(_app)
  21. # with app.app_context():
  22. # from . import views # Import routes
  23. # # from src.core.voip.bot import BotAgent
  24. # from .call import CallService
  25. # from .agent import AgentService, AgentOperService
  26. # from .esl.client import InboundClient, OutboundClient
  27. #
  28. # # agent = BotAgent(_app.logger)
  29. # agent, _outbound_client = None, None
  30. # _inbound_client = InboundClient(agent, _app.logger)
  31. # _outbound_client = OutboundClient(agent, _app.logger)
  32. # _call_service = CallService(_inbound_client, _app.logger)
  33. # _agent_service = AgentService(_inbound_client, _app.logger)
  34. # _agent_oper_service = AgentOperService(_inbound_client, _app.logger)
  35. # return _app, _inbound_client, _outbound_client, _call_service , _agent_service, _agent_oper_service
  36. return _app
  37. app = create_app()
  38. @app.errorhandler(BizException)
  39. def handle_biz_exception(error):
  40. traceback.print_exc()
  41. return error_response(msg=str(error), http_code=200)
  42. # Generic error handler for uncaught exceptions
  43. @app.errorhandler(Exception)
  44. def handle_generic_exception(error):
  45. traceback.print_exc()
  46. return error_response(msg=str(error), http_code=500)
  47. # Specific error handler for 404 Not Found errors
  48. @app.errorhandler(404)
  49. def handle_404_error(error):
  50. return error_response(msg="Resource not found", http_code=404)
  51. # Specific error handler for 400 Bad Request errors
  52. @app.errorhandler(400)
  53. def handle_400_error(error):
  54. return error_response(msg="Bad Request", http_code=400)