Spaces:
Running
Running
| 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) | |
| 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}) | |
| async def root(): | |
| return RedirectResponse(url="/login") | |
| async def startup(): | |
| init_db() | |
| print("Database initialized.") | |