Stats and error handling
This commit is contained in:
@ -25,6 +25,8 @@ from sshecret_admin.core.db import setup_database
|
||||
from sshecret_admin.frontend.exceptions import RedirectException
|
||||
from sshecret_admin.services.secret_manager import setup_private_key
|
||||
|
||||
from sshecret.backend.exceptions import BackendError, BackendValidationError
|
||||
|
||||
from .dependencies import BaseDependencies
|
||||
from .settings import AdminServerSettings
|
||||
|
||||
@ -72,13 +74,13 @@ def create_admin_app(
|
||||
|
||||
app = FastAPI(lifespan=lifespan)
|
||||
app.add_middleware(SessionMiddleware, secret_key=settings.secret_key)
|
||||
origins = [ settings.frontend_origin ]
|
||||
origins = [settings.frontend_origin]
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=origins,
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"]
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
@app.exception_handler(RequestValidationError)
|
||||
@ -90,6 +92,24 @@ def create_admin_app(
|
||||
content=jsonable_encoder({"detail": exc.errors(), "body": exc.body}),
|
||||
)
|
||||
|
||||
@app.exception_handler(BackendValidationError)
|
||||
async def validation_backend_validation_exception_handler(
|
||||
request: Request, exc: BackendValidationError
|
||||
):
|
||||
return JSONResponse(
|
||||
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
|
||||
content=jsonable_encoder({"detail": exc.errors()}),
|
||||
)
|
||||
|
||||
@app.exception_handler(BackendError)
|
||||
async def validation_backend_exception_handler(
|
||||
request: Request, exc: BackendValidationError
|
||||
):
|
||||
return JSONResponse(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
content=jsonable_encoder({"detail": [str(exc)]}),
|
||||
)
|
||||
|
||||
@app.exception_handler(RedirectException)
|
||||
async def redirect_handler(request: Request, exc: RedirectException) -> Response:
|
||||
"""Handle redirect exceptions."""
|
||||
|
||||
Reference in New Issue
Block a user