feat: implement async lifespan for FastAPI and remove startup event

This commit is contained in:
Abhimanyu Saharan
2026-02-06 11:57:29 +05:30
parent 32010880d5
commit ca614328ac
2 changed files with 13 additions and 6 deletions

View File

@@ -1,5 +1,7 @@
from __future__ import annotations
from contextlib import asynccontextmanager
from fastapi import APIRouter, FastAPI
from fastapi.middleware.cors import CORSMiddleware
@@ -22,7 +24,14 @@ from app.db.session import init_db
configure_logging()
app = FastAPI(title="Mission Control API", version="0.1.0")
@asynccontextmanager
async def lifespan(_: FastAPI):
init_db()
yield
app = FastAPI(title="Mission Control API", version="0.1.0", lifespan=lifespan)
origins = [o.strip() for o in settings.cors_origins.split(",") if o.strip()]
if origins:
@@ -35,11 +44,6 @@ if origins:
)
@app.on_event("startup")
def on_startup() -> None:
init_db()
@app.get("/health")
def health() -> dict[str, bool]:
return {"ok": True}

View File

@@ -47,3 +47,6 @@ warn_redundant_casts = true
warn_unused_configs = true
check_untyped_defs = true
plugins = ["pydantic.mypy"]
[tool.pytest.ini_options]
asyncio_default_fixture_loop_scope = "function"