2026-09-04 10:20:40 +08:00

31 lines
738 B
Python

"""Application exceptions and response handler."""
from typing import Any
from fastapi import Request
from fastapi.responses import JSONResponse
class AppException(Exception):
def __init__(
self,
message: str,
*,
code: int = 400,
status_code: int = 400,
details: Any = None,
) -> None:
super().__init__(message)
self.message = message
self.code = code
self.status_code = status_code
self.details = details
async def app_exception_handler(_: Request, exc: AppException) -> JSONResponse:
return JSONResponse(
status_code=exc.status_code,
content={"code": exc.code, "message": exc.message, "data": exc.details},
)