from fastapi import FastAPI, Depends from starlette.requests import Request import uvicorn from app.api.api_v1.routers.kintone import kinton_router from app.api.api_v1.routers.users import users_router from app.api.api_v1.routers.auth import auth_router from app.api.api_v1.routers.platform import platform_router from app.core import config from app.db import Base,engine from app.core.auth import get_current_active_user from app.core.celery_app import celery_app from app import tasks from fastapi.middleware.cors import CORSMiddleware Base.metadata.create_all(bind=engine) app = FastAPI( title=config.PROJECT_NAME, docs_url="/api/docs", openapi_url="/api" ) origins = [ "http://localhost:9000", "http://localhost", "http://localhost:8080", ] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # @app.middleware("http") # async def db_session_middleware(request: Request, call_next): # request.state.db = SessionLocal() # response = await call_next(request) # request.state.db.close() # return response @app.get("/api/v1") async def root(): return {"message": "success"} @app.get("/api/v1/task") async def example_task(): celery_app.send_task("app.tasks.example_task", args=["Hello World"]) return {"message": "success"} # Routers app.include_router( users_router, prefix="/api/v1", tags=["users"], dependencies=[Depends(get_current_active_user)], ) app.include_router(auth_router, prefix="/api", tags=["auth"]) app.include_router(kinton_router,prefix="/api/v1",tags=["kintone"]) app.include_router(platform_router,prefix="/api",tags=["platform"]) if __name__ == "__main__": uvicorn.run("main:app", host="0.0.0.0", reload=True, port=8888)