Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add components support #24

Merged
merged 1 commit into from
Sep 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion ya_tracker_client/domain/entities/checklist.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

from ya_tracker_client.domain.entities.base import AbstractEntity
from ya_tracker_client.domain.entities.deadline import Deadline
from ya_tracker_client.domain.entities.user import UserShort
Expand Down
14 changes: 14 additions & 0 deletions ya_tracker_client/domain/entities/component.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from ya_tracker_client.domain.entities.base import AbstractEntity
from ya_tracker_client.domain.entities.queue import QueueShort
from ya_tracker_client.domain.entities.user import UserShort


class Component(AbstractEntity):
url: str
id: int
version: int
name: str
queue: QueueShort
description: str
lead: UserShort | None = None
assign_auto: bool
4 changes: 3 additions & 1 deletion ya_tracker_client/domain/repositories/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from ya_tracker_client.domain.repositories.checklist import ChecklistRepository
from ya_tracker_client.domain.repositories.component import ComponentRepository
from ya_tracker_client.domain.repositories.issue import IssueRepository
from ya_tracker_client.domain.repositories.issue_relationship import IssueRelationshipRepository
from ya_tracker_client.domain.repositories.queue import QueueRepository
Expand All @@ -7,8 +8,9 @@

__all__ = [
"ChecklistRepository",
"IssueRepository",
"ComponentRepository",
"IssueRelationshipRepository",
"IssueRepository",
"QueueRepository",
"UserRepository",
]
16 changes: 16 additions & 0 deletions ya_tracker_client/domain/repositories/component.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from json import loads

from ya_tracker_client.domain.entities.component import Component
from ya_tracker_client.domain.repositories.base import EntityRepository


class ComponentRepository(EntityRepository):
async def get_components(self) -> list[Component]:
"""
YT docs: https://cloud.yandex.com/en/docs/tracker/get-components
"""
raw_response = await self._client.request(
method="GET",
uri="/components",
)
return [Component(**raw_component) for raw_component in loads(raw_response)]
4 changes: 3 additions & 1 deletion ya_tracker_client/service/api.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from ya_tracker_client.domain.repositories import (
ChecklistRepository,
ComponentRepository,
IssueRelationshipRepository,
IssueRepository,
QueueRepository,
Expand All @@ -9,11 +10,12 @@


class YaTrackerClient(
ChecklistRepository,
ComponentRepository,
IssueRelationshipRepository,
IssueRepository,
QueueRepository,
UserRepository,
ChecklistRepository,
):
def __init__(
self,
Expand Down
Loading