-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
118 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
from ya_tracker_client.domain.entities.base import AbstractEntity | ||
|
||
|
||
class IssueFieldShort(AbstractEntity): | ||
url: str | ||
id: str | ||
display: str | ||
|
||
|
||
class IssueFieldChange(AbstractEntity): | ||
field: IssueFieldShort | ||
value: list |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
from pydantic import Field | ||
|
||
from ya_tracker_client.domain.entities.base import AbstractEntity | ||
from ya_tracker_client.domain.entities.issue_field import IssueFieldChange | ||
from ya_tracker_client.domain.entities.queue import QueueShort | ||
|
||
|
||
class Macro(AbstractEntity): | ||
url: str | ||
id: int | ||
queue: QueueShort | ||
name: str | ||
body: str | ||
field_changes: list[IssueFieldChange] = Field(default_factory=list) | ||
|
||
|
||
class MacroCreate(AbstractEntity): | ||
name: str | ||
body: str | None = None | ||
field_changes: list[IssueFieldChange] | None = None | ||
|
||
|
||
class MacroEdit(MacroCreate): | ||
pass |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
from ya_tracker_client.domain.entities.issue_field import IssueFieldChange | ||
from ya_tracker_client.domain.entities.macro import Macro, MacroCreate, MacroEdit | ||
from ya_tracker_client.domain.repositories.base import EntityRepository | ||
|
||
|
||
class MacroRepository(EntityRepository): | ||
async def get_macros(self, queue_id: str) -> list[Macro]: | ||
""" | ||
YC docs: https://cloud.yandex.com/en/docs/tracker/get-macroses | ||
""" | ||
raw_response = await self._client.request( | ||
method="GET", | ||
uri=f"/queues/{queue_id}/macros", | ||
) | ||
return self._decode(raw_response, Macro, plural=True) | ||
|
||
async def get_macro(self, queue_id: str, macro_id: str) -> Macro: | ||
""" | ||
YC docs: https://cloud.yandex.com/en/docs/tracker/get-macros | ||
""" | ||
raw_response = await self._client.request( | ||
method="GET", | ||
uri=f"/queues/{queue_id}/macros/{macro_id}", | ||
) | ||
return self._decode(raw_response, Macro) | ||
|
||
async def create_macro( | ||
self, | ||
queue_id: str, | ||
name: str, | ||
body: str | None = None, | ||
field_changes: list[IssueFieldChange] | None = None, | ||
) -> Macro: | ||
""" | ||
YC docs: https://cloud.yandex.com/en/docs/tracker/post-macros | ||
""" | ||
raw_response = await self._client.request( | ||
method="POST", | ||
uri=f"/queues/{queue_id}/macros", | ||
payload=MacroCreate( | ||
name=name, | ||
body=body, | ||
field_changes=field_changes, | ||
).model_dump(exclude_none=True, by_alias=True), | ||
) | ||
return self._decode(raw_response, Macro) | ||
|
||
async def edit_macro( | ||
self, | ||
queue_id: str, | ||
macro_id: str, | ||
name: str, | ||
body: str | None = None, | ||
field_changes: list[IssueFieldChange] | None = None, | ||
) -> Macro: | ||
""" | ||
YC docs: https://cloud.yandex.com/en/docs/tracker/patch-macros | ||
""" | ||
raw_response = await self._client.request( | ||
method="PATCH", | ||
uri=f"/queues/{queue_id}/macros/{macro_id}", | ||
payload=MacroEdit( | ||
name=name, | ||
body=body, | ||
field_changes=field_changes, | ||
).model_dump(exclude_none=True, by_alias=True), | ||
) | ||
return self._decode(raw_response, Macro) | ||
|
||
async def delete_macro(self, queue_id: str, macro_id: str) -> None: | ||
""" | ||
YC docs: https://cloud.yandex.com/en/docs/tracker/delete-macros | ||
""" | ||
await self._client.request( | ||
method="DELETE", | ||
uri=f"/queues/{queue_id}/macros/{macro_id}", | ||
) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters