# DRF Rack # Библиотека классов расширений для Django REST Framework # # Автор: Николай В. Анохин # Все права защищены. Лицензия: MIT """ Описание класса ErrorResponse """ from rest_framework import status from net.xeaf.rack.core import CoreResponse class ErrorResponse(CoreResponse): """ Ответ с информацией об ошибке """ def __init__(self, status_code: int, detail: list | dict | str | bool | None, meta: dict | None = None): """ Инициализация :param status_code: Код состояния :param detail: Информация об ошибке :param meta: Дополнительные данные """ super(ErrorResponse, self).__init__( internal_status=status_code, external_status=self._calc_external_status(status_code), data=detail, meta=meta) @classmethod def _calc_external_status(cls, status_code: int) -> int: """ Вычисляет значение внешнего возвращаемого статуса :param status_code: Код состояния :return: Внешний код состояния """ if status_code < status.HTTP_500_INTERNAL_SERVER_ERROR: return status.HTTP_200_OK return status_code