mini-rbac/backend/core/exceptions.py

23 lines
515 B
Python

from fastapi.exceptions import HTTPException
from starlette.requests import Request
from starlette.responses import JSONResponse
class TokenAuthFailure(HTTPException):
pass
class PermissionsError(HTTPException):
pass
async def http_exception(request: Request, exc: HTTPException):
return JSONResponse(
{"msg": exc.detail, "code": exc.status_code, "data": None},
status_code=exc.status_code,
headers=exc.headers,
)
exception_handlers = {HTTPException: http_exception}