Coverage for bc/kwai-bc-teams/src/kwai_bc_teams/get_team.py: 100%
14 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module that implements the use case 'Get Team'."""
3from dataclasses import dataclass
5from kwai_core.domain.presenter import Presenter
7from kwai_bc_teams.domain.team import TeamEntity, TeamIdentifier
8from kwai_bc_teams.repositories.team_repository import TeamRepository
11@dataclass(kw_only=True, frozen=True, slots=True)
12class GetTeamCommand:
13 """Input for the use case 'Get Team'."""
15 id: int
18class GetTeam:
19 """Implement the use case 'Get Teams'."""
21 def __init__(
22 self,
23 team_repo: TeamRepository,
24 presenter: Presenter[TeamEntity],
25 ):
26 """Initialize the use case."""
27 self._team_repo = team_repo
28 self._presenter = presenter
30 async def execute(self, command: GetTeamCommand) -> None:
31 """Execute the use case."""
32 query = self._team_repo.create_query()
33 query.filter_by_id(TeamIdentifier(command.id))
34 self._presenter.present(await self._team_repo.get(query))