mirror of
https://github.com/fastapi-admin/fastapi-admin.git
synced 2025-08-06 18:49:47 +08:00
63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
from fastapi import HTTPException
|
|
from starlette.requests import Request
|
|
from starlette.status import HTTP_500_INTERNAL_SERVER_ERROR
|
|
|
|
from fastapi_admin.template import templates
|
|
|
|
|
|
class ServerHTTPException(HTTPException):
|
|
def __init__(self, error: str = None):
|
|
super(ServerHTTPException, self).__init__(
|
|
status_code=HTTP_500_INTERNAL_SERVER_ERROR, detail=error
|
|
)
|
|
|
|
|
|
class InvalidResource(ServerHTTPException):
|
|
"""
|
|
raise when has invalid resource
|
|
"""
|
|
|
|
|
|
class NoSuchFieldFound(ServerHTTPException):
|
|
"""
|
|
raise when no such field for the given
|
|
"""
|
|
|
|
|
|
class FileMaxSizeLimit(ServerHTTPException):
|
|
"""
|
|
raise when the upload file exceeds the max size
|
|
"""
|
|
|
|
|
|
class FileExtNotAllowed(ServerHTTPException):
|
|
"""
|
|
raise when the upload file ext not allowed
|
|
"""
|
|
|
|
|
|
async def server_error_exception(request: Request, exc: HTTPException):
|
|
return templates.TemplateResponse(
|
|
"errors/500.html",
|
|
status_code=HTTP_500_INTERNAL_SERVER_ERROR,
|
|
context={"request": request},
|
|
)
|
|
|
|
|
|
async def not_found_error_exception(request: Request, exc: HTTPException):
|
|
return templates.TemplateResponse(
|
|
"errors/404.html", status_code=exc.status_code, context={"request": request}
|
|
)
|
|
|
|
|
|
async def forbidden_error_exception(request: Request, exc: HTTPException):
|
|
return templates.TemplateResponse(
|
|
"errors/403.html", status_code=exc.status_code, context={"request": request}
|
|
)
|
|
|
|
|
|
async def unauthorized_error_exception(request: Request, exc: HTTPException):
|
|
return templates.TemplateResponse(
|
|
"errors/401.html", status_code=exc.status_code, context={"request": request}
|
|
)
|