Исправление обработчика pure_status для ошибок
This commit is contained in:
@@ -18,32 +18,34 @@ class ErrorResponse(CoreResponse):
|
||||
Ответ с информацией об ошибке
|
||||
"""
|
||||
|
||||
def __init__(self, status_code: int, detail: list | dict | str | bool | None, meta: dict | None = None):
|
||||
def __init__(self, status_code: int, detail: list | dict | str | bool | None, meta: dict | None = None, pure_status: bool = False):
|
||||
"""
|
||||
Инициализация
|
||||
|
||||
:param status_code: Код состояния
|
||||
:param detail: Информация об ошибке
|
||||
:param meta: Дополнительные данные
|
||||
:param pure_status: Возвращать настоящий код состояния
|
||||
"""
|
||||
|
||||
super(ErrorResponse, self).__init__(
|
||||
internal_status=status_code,
|
||||
external_status=self._calc_external_status(status_code),
|
||||
external_status=self._calc_external_status(status_code, pure_status),
|
||||
data=detail,
|
||||
meta=meta)
|
||||
|
||||
@classmethod
|
||||
def _calc_external_status(cls, status_code: int) -> int:
|
||||
def _calc_external_status(cls, status_code: int, pure_status: bool) -> int:
|
||||
"""
|
||||
Вычисляет значение внешнего возвращаемого статуса
|
||||
|
||||
:param status_code: Код состояния
|
||||
:param pure_status: Возвращать настоящий код состояния
|
||||
|
||||
:return: Внешний код состояния
|
||||
"""
|
||||
|
||||
if status_code < status.HTTP_500_INTERNAL_SERVER_ERROR:
|
||||
if status_code < status.HTTP_500_INTERNAL_SERVER_ERROR and not pure_status:
|
||||
return status.HTTP_200_OK
|
||||
|
||||
return status_code
|
||||
|
||||
Reference in New Issue
Block a user