Coverage for bc/kwai-bc-teams/src/kwai_bc_teams/create_team.py: 100%
13 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 defines the use case 'Create Team'."""
3from dataclasses import dataclass
5from kwai_core.domain.presenter import Presenter
7from kwai_bc_teams.domain.team import TeamEntity
8from kwai_bc_teams.repositories.team_repository import TeamRepository
11@dataclass(kw_only=True, frozen=True, slots=True)
12class CreateTeamCommand:
13 """Input for the use case 'Create Team'."""
15 name: str
16 active: bool
17 remark: str
20class CreateTeam:
21 """Use case 'Create Team'."""
23 def __init__(self, team_repo: TeamRepository, presenter: Presenter[TeamEntity]):
24 """Initialize the use case.
26 Args:
27 team_repo: A repository that creates the team.
28 presenter: A presenter for a team entity.
29 """
30 self._team_repo = team_repo
31 self._presenter = presenter
33 async def execute(self, command: CreateTeamCommand) -> None:
34 """Executes the use case."""
35 team = TeamEntity(
36 name=command.name, active=command.active, remark=command.remark
37 )
38 self._presenter.present(await self._team_repo.create(team))