fix(fastapi): includes lifespan and middlewares in main.py

This commit is contained in:
sauravniraula 2025-07-16 00:38:06 +05:45
parent ea3ff5be47
commit 1fe4410ced
No known key found for this signature in database
GPG key ID: 60FCC1B5A5E83326
4 changed files with 42 additions and 42 deletions

View file

@ -1,16 +0,0 @@
from contextlib import asynccontextmanager
import os
from fastapi import FastAPI
from sqlmodel import SQLModel
from services import SQL_ENGINE
from utils.check_llm_model_availability import check_llm_model_availability
@asynccontextmanager
async def app_lifespan(_: FastAPI):
os.makedirs(os.getenv("APP_DATA_DIRECTORY"), exist_ok=True)
SQLModel.metadata.create_all(SQL_ENGINE)
await check_llm_model_availability()
yield

View file

@ -1,12 +1,51 @@
from fastapi import FastAPI
from contextlib import asynccontextmanager
import os
from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from sqlmodel import SQLModel
from api.v1.ppt.router import API_V1_PPT_ROUTER
from api.lifespan import app_lifespan
from services import SQL_ENGINE
from utils.check_llm_model_availability import check_llm_model_availability
from utils.get_env import get_can_change_keys_env
from utils.user_config import update_env_with_user_config
# Lifespan
@asynccontextmanager
async def app_lifespan(_: FastAPI):
os.makedirs(os.getenv("APP_DATA_DIRECTORY"), exist_ok=True)
SQLModel.metadata.create_all(SQL_ENGINE)
await check_llm_model_availability()
yield
# App
APP = FastAPI(lifespan=app_lifespan)
# Static files
APP.mount("/static", StaticFiles(directory="static"), name="static")
# APP.mount("/static/app-data", StaticFiles(directory=get_app_data_directory_env()))
# Routers
APP.include_router(API_V1_PPT_ROUTER)
# Middlewares
origins = ["*"]
APP.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@APP.middleware("http")
async def update_env_middleware(request: Request, call_next):
if get_can_change_keys_env() != "false":
update_env_with_user_config()
return await call_next(request)

View file

@ -1,23 +0,0 @@
from fastapi import Request
from api.main import APP
from fastapi.middleware.cors import CORSMiddleware
from utils.get_env import get_can_change_keys_env
from utils.user_config import update_env_with_user_config
origins = ["*"]
APP.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@APP.middleware("http")
async def update_env_middleware(request: Request, call_next):
if get_can_change_keys_env() != "false":
update_env_with_user_config()
return await call_next(request)

View file

@ -37,7 +37,7 @@ async def upload_files(files: Optional[List[UploadFile]]):
return temp_files
@FILES_ROUTER.post("/decompose")
@FILES_ROUTER.post("/decompose", response_model=List[DecomposedFileInfo])
async def decompose_files(file_paths: Annotated[List[str], Body(embed=True)]):
temp_dir = TEMP_FILE_SERVICE.create_temp_dir(str(uuid.uuid4()))