ref: рефакторинг usecases
This commit is contained in:
@@ -13,30 +13,29 @@ log = logging.getLogger(__name__)
|
||||
async def update_external_channel(
|
||||
self: 'Usecase', channel_id: uuid.UUID, input: dto.UpdateExternalChannelInput, user_id: uuid.UUID
|
||||
) -> dto.ExternalChannelOutput:
|
||||
async with self.database.transaction():
|
||||
external_channel = await self.database.get_external_channel(user_id, channel_id=channel_id)
|
||||
if not external_channel:
|
||||
log.warning('External channel %s not found', channel_id)
|
||||
raise domain.ExternalChannelNotFound(channel_id)
|
||||
external_channel = await self.database.get_external_channel(user_id, channel_id=channel_id)
|
||||
if not external_channel:
|
||||
log.warning('External channel %s not found', channel_id)
|
||||
raise domain.ExternalChannelNotFound(channel_id)
|
||||
|
||||
if input.title is not None:
|
||||
external_channel.title = input.title
|
||||
if input.username is not None:
|
||||
external_channel.username = input.username
|
||||
if input.description is not None:
|
||||
external_channel.description = input.description
|
||||
if input.subscribers_count is not None:
|
||||
external_channel.subscribers_count = input.subscribers_count
|
||||
if input.title is not None:
|
||||
external_channel.title = input.title
|
||||
if input.username is not None:
|
||||
external_channel.username = input.username
|
||||
if input.description is not None:
|
||||
external_channel.description = input.description
|
||||
if input.subscribers_count is not None:
|
||||
external_channel.subscribers_count = input.subscribers_count
|
||||
|
||||
updated = await self.database.update_external_channel(external_channel)
|
||||
await self.database.update_external_channel(external_channel)
|
||||
|
||||
log.info('External channel %s updated', channel_id)
|
||||
log.info('External channel %s updated', channel_id)
|
||||
|
||||
return dto.ExternalChannelOutput(
|
||||
id=updated.id,
|
||||
telegram_id=updated.telegram_id,
|
||||
title=updated.title,
|
||||
username=updated.username,
|
||||
description=updated.description,
|
||||
subscribers_count=updated.subscribers_count,
|
||||
)
|
||||
return dto.ExternalChannelOutput(
|
||||
id=external_channel.id,
|
||||
telegram_id=external_channel.telegram_id,
|
||||
title=external_channel.title,
|
||||
username=external_channel.username,
|
||||
description=external_channel.description,
|
||||
subscribers_count=external_channel.subscribers_count,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user