Initial FastAPI admin auth scaffold
This commit is contained in:
44
app/main.py
Normal file
44
app/main.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from contextlib import asynccontextmanager
|
||||
from typing import AsyncIterator
|
||||
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
|
||||
from app.controller.admin.login_controller import router as admin_login_router
|
||||
from app.controller.admin.profile_controller import router as admin_profile_router
|
||||
from app.controller.api.health_controller import router as api_health_router
|
||||
from app.core.config import get_settings
|
||||
from app.core.dependencies import bootstrap_database
|
||||
from app.exception.handler import register_exception_handlers
|
||||
from app.lib.response.admin_return import AdminReturn
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI) -> AsyncIterator[None]:
|
||||
await bootstrap_database()
|
||||
yield
|
||||
|
||||
|
||||
def create_app() -> FastAPI:
|
||||
settings = get_settings()
|
||||
application = FastAPI(title=settings.app_name, lifespan=lifespan)
|
||||
application.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=settings.cors_allow_origins,
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
register_exception_handlers(application)
|
||||
application.include_router(admin_login_router)
|
||||
application.include_router(admin_profile_router)
|
||||
application.include_router(api_health_router)
|
||||
|
||||
@application.get("/")
|
||||
async def index() -> dict:
|
||||
return AdminReturn().success("success", {"name": settings.app_name})
|
||||
|
||||
return application
|
||||
|
||||
|
||||
app = create_app()
|
||||
Reference in New Issue
Block a user