__init__.py 2.0 KB

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