from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from routes import admin, auth, review, stats import duckdb from settings import settings from lib.logger import logger @asynccontextmanager async def lifespan(app: FastAPI): from lib import startup startup.init_app() global db db = duckdb.connect(str(settings.database_file)) yield db.close() logger.info("Starting app") app = FastAPI(lifespan=lifespan) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(auth.router) app.include_router(admin.router) app.include_router(review.router) app.include_router(stats.router) @app.get("/") def read_root(): return {"Hello": "World"}