File size: 476 Bytes
b7f1562 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | from __future__ import annotations
from dataclasses import dataclass
from typing import Any
@dataclass
class ApiError(Exception):
code: str
message: str
status_code: int = 400
def __str__(self) -> str:
return f"{self.code}: {self.message}"
def public_error_payload(exc: ApiError) -> dict[str, Any]:
return {
"error": {
"code": exc.code,
"message": exc.message,
"type": "api_error",
}
}
|