pif / app /main.py
pramodmisra's picture
Add draft saving, user dashboard, and rename to Commission Agreement Intake Form
c5de9ee
from fastapi import FastAPI, Request
from fastapi.responses import RedirectResponse, JSONResponse
from fastapi.staticfiles import StaticFiles
from starlette.exceptions import HTTPException as StarletteHTTPException
from app.database import init_db
from app.routes import auth_routes, form_routes, admin_routes, approval_routes
app = FastAPI(title="Commission Agreement Intake Form", version="2.0.0")
app.mount("/static", StaticFiles(directory="app/static"), name="static")
app.include_router(auth_routes.router)
app.include_router(form_routes.router)
app.include_router(admin_routes.router)
app.include_router(approval_routes.router)
@app.exception_handler(StarletteHTTPException)
async def custom_http_exception_handler(request: Request, exc: StarletteHTTPException):
if exc.status_code == 401:
return RedirectResponse(url="/login")
if exc.status_code == 403:
return JSONResponse(status_code=403, content={"detail": exc.detail})
return JSONResponse(status_code=exc.status_code, content={"detail": exc.detail})
@app.get("/")
async def root():
return RedirectResponse(url="/login")
@app.on_event("startup")
async def startup():
init_db()
print("Database initialized.")