| from contextlib import asynccontextmanager |
|
|
| from fastapi import Depends, FastAPI |
|
|
| from .db import User, create_db_and_tables |
| from .schemas import UserCreate, UserRead, UserUpdate |
| from .users import auth_backend, current_active_user, fastapi_users |
| from .llm import * |
|
|
| @asynccontextmanager |
| async def lifespan(app: FastAPI): |
| |
| await create_db_and_tables() |
| yield |
|
|
|
|
| app = FastAPI(lifespan=lifespan) |
|
|
| app.include_router( |
| fastapi_users.get_auth_router(auth_backend), prefix="/auth/jwt", tags=["auth"] |
| ) |
| app.include_router( |
| llm_router, |
| tags=["llm"] |
| ) |
| app.include_router( |
| fastapi_users.get_register_router(UserRead, UserCreate), |
| prefix="/auth", |
| tags=["auth"], |
| ) |
| app.include_router( |
| fastapi_users.get_reset_password_router(), |
| prefix="/auth", |
| tags=["auth"], |
| ) |
| app.include_router( |
| fastapi_users.get_verify_router(UserRead), |
| prefix="/auth", |
| tags=["auth"], |
| ) |
| app.include_router( |
| fastapi_users.get_users_router(UserRead, UserUpdate), |
| prefix="/users", |
| tags=["users"], |
| ) |
|
|
|
|
| @app.get("/authenticated-route") |
| async def authenticated_route(user: User = Depends(current_active_user)): |
| return {"message": f"Hello {user.email}!"} |
|
|