from fastapi import FastAPI, Depends, HTTPException, status, Request, Response from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm from jose import JWTError, jwt from fastapi.security import OAuth2PasswordBearer from sqlalchemy.orm import Session from app import models from app import schemas from app import database from app import crud from app.utils import encrypt from app.api import api_router oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") database.Base.metadata.create_all(bind=database.engine) app = FastAPI() @app.middleware("http") async def db_session_middleware(request: Request, call_next): response = Response("Internal server error", status_code=500) try: request.state.db = database.SessionLocal() response = await call_next(request) finally: request.state.db.close() return response app.include_router(api_router, prefix="/api")