diff --git a/app/main.py b/app/main.py index 4fdefad..27d3676 100644 --- a/app/main.py +++ b/app/main.py @@ -1,5 +1,4 @@ import logging -from contextlib import asynccontextmanager from fastapi import FastAPI @@ -13,18 +12,8 @@ logging.basicConfig( ) log = logging.getLogger(__name__) - -@asynccontextmanager -async def lifespan(app: FastAPI): - log.info("Starting Melora") - await init_db() - await _ensure_thread_roots() - await start_presence() - log.info("Melora ready") - yield - log.info("Shutting down Melora") - await close_client() - await close_db() +app = FastAPI(title="Melora") +app.include_router(webhook_router) async def _ensure_thread_roots() -> None: @@ -38,8 +27,20 @@ async def _ensure_thread_roots() -> None: await set_thread_root(media_type, event_id) -app = FastAPI(title="Melora", lifespan=lifespan) -app.include_router(webhook_router) +@app.on_event("startup") +async def startup() -> None: + log.info("Starting Melora") + await init_db() + await _ensure_thread_roots() + await start_presence() + log.info("Melora ready") + + +@app.on_event("shutdown") +async def shutdown() -> None: + log.info("Shutting down Melora") + await close_client() + await close_db() @app.get("/health")