Files

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}
)