diff --git a/ya_tracker_client/domain/client/base.py b/ya_tracker_client/domain/client/base.py index b9b270e..f8cb2ba 100644 --- a/ya_tracker_client/domain/client/base.py +++ b/ya_tracker_client/domain/client/base.py @@ -57,8 +57,6 @@ async def request( params: dict[str, Any] | None = None, payload: dict[str, Any] | None = None, ) -> bytes: - uri = f"{self._base_url}/{self._api_version}{uri}" - bytes_payload = BytesPayload( value=bytes(serialize_entity(payload), encoding="utf-8"), content_type="application/json", @@ -66,7 +64,7 @@ async def request( status, body = await self._make_request( method=method, - url=uri, + url=f"{self._base_url}/{self._api_version}{uri}", params=params, data=bytes_payload, ) diff --git a/ya_tracker_client/domain/entities/duration.py b/ya_tracker_client/domain/entities/duration.py new file mode 100644 index 0000000..948e59c --- /dev/null +++ b/ya_tracker_client/domain/entities/duration.py @@ -0,0 +1,67 @@ +from re import compile +from typing import Any + +from pydantic import model_validator + +from ya_tracker_client.domain.entities.base import AbstractEntity + + +PATTERN = compile( + r"^P(?=\d+[YMWD])" + r"((?P\d+)Y)?" + r"((?P\d+)M)?" + r"((?P\d+)W)?" + r"((?P\d+)D)?" + r"(?P