Исходный код cdek.apps.models.request
from __future__ import annotations
from datetime import datetime
from typing import Literal
from uuid import UUID
from pydantic import BaseModel, Field, field_serializer
from .error import Error
from .warning import WarningModel
[документация]
class Request(BaseModel):
"""Модель ответа о запросе."""
request_uuid: UUID | None = Field(
None, description="Идентификатор запроса в ИС СДЭК"
)
type: Literal[
"CREATE",
"UPDATE",
"DELETE",
"AUTH",
"GET",
"CREATE_CLIENT_RETURN",
"CREATE_REFUSAL",
] = Field(..., description="Тип запроса")
date_time: datetime = Field(
..., description="Дата и время установки текущего состояния запроса"
)
state: Literal["ACCEPTED", "WAITING", "SUCCESSFUL", "INVALID"] = Field(
..., max_length=255, description="Текущее состояние запроса"
)
errors: list[Error] | None = Field(
None, description="Ошибки, возникшие в ходе выполнения запроса"
)
warnings: list[WarningModel] | None = Field(
None, description="Предупреждения, возникшие в ходе выполнения запроса"
)
[документация]
def get_state(self) -> str | None:
"""Получить состояние запроса."""
return self.state
[документация]
@field_serializer("date_time")
def serialize_date_time(self, date_time: datetime) -> str:
"""Представить дату последнего изменения запроса в формате ISO"""
return date_time.strftime("%Y-%m-%dT%H:%M:%S")