from __future__ import annotations
from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
from witty_service.domain.errors import DomainError
def register_exception_handlers(app: FastAPI) -> None:
@app.exception_handler(DomainError)
async def _domain_error_handler(_: Request, exc: DomainError) -> JSONResponse:
return JSONResponse(
status_code=exc.status_code,
content={"error": exc.to_payload().to_dict()},
)