| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import logging
- from quart import Quart
- from quart_cors import cors
- from src.core.bootstrap import AppContext, setup_logging
- from src.core.dependency import ServerContainer
- from src.core.api.v1.routes import server_routes
- from src.core.api.v1.middleware import register_error_handlers
- setup_logging()
- logger = logging.getLogger(__name__)
- app = Quart(__name__)
- app = cors(app, allow_origin="*")
- register_error_handlers(app)
- server_container = ServerContainer()
- ctx = AppContext(server_container)
- config = server_container.config()
- log_service = server_container.log_service()
- mysql_pool = server_container.mysql_pool()
- routes = server_routes(mysql_pool, log_service, config)
- app.register_blueprint(routes)
- @app.before_serving
- async def startup():
- logger.info("Starting application...")
- await ctx.start_up()
- logger.info("Application started successfully")
- @app.after_serving
- async def shutdown():
- logger.info("Shutting down application...")
- await ctx.shutdown()
- logger.info("Application shutdown successfully")
|