Files
ai_web/backend/apps/common/errors.py

37 lines
865 B
Python
Raw Normal View History

2026-01-28 16:00:56 +08:00
from typing import Any, Optional
def map_status_to_code(status_code: int) -> str:
if status_code == 400:
return "bad_request"
if status_code == 401:
return "unauthorized"
if status_code == 403:
return "forbidden"
if status_code == 404:
return "not_found"
if status_code == 409:
return "conflict"
if status_code == 429:
return "rate_limited"
if status_code >= 500:
return "server_error"
return "error"
def build_error_payload(
*,
status_code: int,
message: str,
details: Optional[Any] = None,
code: Optional[str] = None,
) -> dict:
payload = {
"code": code or map_status_to_code(status_code),
"message": message,
"status": status_code,
}
if details is not None:
payload["details"] = details
return payload