Files
g2s-aggregator/app/adapters/delivery_providers/cdek/order_mapper.py
T
Раис Юсупалиев 15a17be4ed 016 add creating order to adapter
2026-03-14 03:55:23 +03:00

26 lines
875 B
Python

"""CDEK order registration payload mappers."""
from typing import Any
from app.schemas.order import OrderCreateRequest, OrderCreateResponse
class CDEKOrderMappingError(ValueError):
"""Raised when CDEK order payload cannot be mapped."""
def map_cdek_order_request(request: OrderCreateRequest) -> dict[str, Any]:
return request.model_dump(mode="python", exclude_none=True)
def map_cdek_order_response(payload: dict[str, Any]) -> OrderCreateResponse:
entity = payload.get("entity")
if not isinstance(entity, dict):
raise CDEKOrderMappingError("CDEK order response must include entity object.")
order_uuid = entity.get("uuid")
if not isinstance(order_uuid, str) or not order_uuid:
raise CDEKOrderMappingError("CDEK order response must include entity.uuid.")
return OrderCreateResponse(provider="cdek", order_uuid=order_uuid)