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

1"""Module that implements the use case 'Get Team'.""" 

2 

3from dataclasses import dataclass 

4 

5from kwai_core.domain.presenter import Presenter 

6 

7from kwai_bc_teams.domain.team import TeamEntity, TeamIdentifier 

8from kwai_bc_teams.repositories.team_repository import TeamRepository 

9 

10 

11@dataclass(kw_only=True, frozen=True, slots=True) 

12class GetTeamCommand: 

13 """Input for the use case 'Get Team'.""" 

14 

15 id: int 

16 

17 

18class GetTeam: 

19 """Implement the use case 'Get Teams'.""" 

20 

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 

29 

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))