from fastapi import FastAPI, Depends from contextlib import asynccontextmanager import database import models import logging logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) @asynccontextmanager async def lifespan(app: FastAPI): database.init() yield database.close() app = FastAPI(lifespan=lifespan) @app.get("/me") async def me(user: models.User = Depends(database.get_user_by_token)): return user @app.post("/users") async def register(user: models.User): database.register(user) return user @app.post("/login") async def login(user: models.User): return database.login(user)