Исправление обработчика pure_status для ошибок

This commit is contained in:
2026-07-18 23:05:39 +03:00
parent a8d36b59b4
commit 7c0f32d1fc
6 changed files with 72 additions and 6 deletions

View File

@@ -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