fix: фиксы после рефакторинга
This commit is contained in:
@@ -80,7 +80,7 @@ class Database(typing.Protocol):
|
||||
async def get_user_external_channels(self, user_id: UUID) -> list[domain.ExternalChannel]: ...
|
||||
|
||||
async def add_external_channel_to_targets(
|
||||
self, external_channel_id: UUID, target_channel_ids: list[UUID]
|
||||
self, external_channel: domain.ExternalChannel, target_channel_ids: list[UUID]
|
||||
) -> None: ...
|
||||
|
||||
async def remove_external_channel_from_target(self, external_channel_id: UUID, target_channel_id: UUID) -> None: ...
|
||||
|
||||
@@ -13,6 +13,10 @@ log = logging.getLogger(__name__)
|
||||
async def create_external_channel(
|
||||
self: 'Usecase', input: dto.CreateExternalChannelInput, user_id: uuid.UUID
|
||||
) -> dto.ExternalChannelOutput:
|
||||
existing_channel = await self.database.get_external_channel(user_id, telegram_id=input.telegram_id)
|
||||
if existing_channel:
|
||||
raise domain.ExternalChannelAlreadyExists(input.telegram_id)
|
||||
|
||||
for target_id in input.target_channel_ids:
|
||||
target_channel = await self.database.get_target_channel(user_id, channel_id=target_id)
|
||||
|
||||
@@ -32,7 +36,7 @@ async def create_external_channel(
|
||||
await self.database.create_external_channel(channel)
|
||||
|
||||
if input.target_channel_ids:
|
||||
await self.database.add_external_channel_to_targets(channel.id, input.target_channel_ids)
|
||||
await self.database.add_external_channel_to_targets(channel, input.target_channel_ids)
|
||||
|
||||
log.info(
|
||||
'External channel %s created and linked to %s target channels', input.telegram_id, len(input.target_channel_ids)
|
||||
|
||||
@@ -13,19 +13,14 @@ log = logging.getLogger(__name__)
|
||||
async def create_placement(self: 'Usecase', input: dto.CreatePlacementInput, user_id: uuid.UUID) -> dto.PlacementOutput:
|
||||
target_channel = await self.database.get_target_channel(user_id, channel_id=input.target_channel_id)
|
||||
if not target_channel:
|
||||
log.warning('User %s attempted to create placement for unavailable target %s', user_id, input.target_channel_id)
|
||||
raise domain.TargetChannelNotFound(input.target_channel_id)
|
||||
|
||||
external_channel = await self.database.get_external_channel(user_id, channel_id=input.external_channel_id)
|
||||
if not external_channel:
|
||||
log.warning(
|
||||
'User %s attempted to create placement for unavailable external %s', user_id, input.external_channel_id
|
||||
)
|
||||
raise domain.ExternalChannelNotFound(input.external_channel_id)
|
||||
|
||||
creative = await self.database.get_creative(user_id, input.creative_id)
|
||||
if not creative:
|
||||
log.warning('User %s attempted to create placement for unavailable creative %s', user_id, input.creative_id)
|
||||
raise domain.CreativeNotFound(input.creative_id)
|
||||
|
||||
requires_approval = input.invite_link_type == domain.InviteLinkType.APPROVAL
|
||||
|
||||
Reference in New Issue
Block a user