Исходный код cdek.apps.intake.intake
from ..app import App
from ..models.entity_response import EntityResponse
from .filters import IntakeDateFilter, IntakeFilter
from .requests import IntakeRequest
from .responses import IntakeDateResponse, IntakeEntityResponse
[документация]
class IntakeApp(App):
"""Класс для работы с заявками на вызов курьера"""
[документация]
def get_call_dates(self, date_request: IntakeDateFilter) -> IntakeDateResponse:
"""Получить доступные даты вызова курьера
Args:
date_request (IntakeDateFilter): фильтр для получения
доступных дат вызова курьера
Returns:
IntakeDateResponse: объект с информацией о доступных датах вызова курьера
Raises:
ValueError: если date_request не является объектом IntakeDateFilter
"""
if not isinstance(date_request, IntakeDateFilter):
raise ValueError("date_request must be a IntakeDateRequest")
response = self._get("intakes/availableDays", params=date_request)
return IntakeDateResponse.model_validate(response)
[документация]
def update(self, intake: IntakeFilter) -> EntityResponse:
"""Изменить параметры существующей заявки
Args:
intake (IntakeFilter): фильтр для изменения параметров существующей заявки
Returns:
EntityResponse: объект с информацией о измененной заявке
Raises:
ValueError: если intake не является объектом IntakeFilter
"""
if not isinstance(intake, IntakeFilter):
raise ValueError("intake must be a IntakeFilter")
response = self._patch("intakes", json=intake)
return EntityResponse.model_validate(response)
[документация]
def create(self, intake: IntakeRequest) -> EntityResponse:
"""Создание заявки на вызов курьера
Args:
intake (IntakeRequest): объект с информацией о заявке на вызов курьера
Returns:
EntityResponse: объект с информацией о созданной заявке
Raises:
ValueError: если intake не является объектом IntakeRequest
"""
if not isinstance(intake, IntakeRequest):
raise ValueError("intake must be a IntakeRequest")
response = self._post("intakes", json=intake)
return EntityResponse.model_validate(response)
[документация]
def get(self, uuid: str) -> IntakeEntityResponse:
"""Информация о заявке на вызов курьера
Args:
uuid (str): идентификатор заявки на вызов курьера
Returns:
IntakeEntityResponse: объект с информацией о заявке на вызов курьера
"""
response = self._get(f"intakes/{uuid}")
return IntakeEntityResponse.model_validate(response)
[документация]
def delete(self, uuid: str) -> EntityResponse:
"""Удаление заявки на вызов курьера
Args:
uuid (str): идентификатор заявки на вызов курьера
Returns:
EntityResponse: объект с информацией о удаленной заявке
"""
response = self._delete(f"intakes/{uuid}")
return EntityResponse.model_validate(response)