import logging from typing import TYPE_CHECKING from src import domain, dto if TYPE_CHECKING: from .. import Usecase log = logging.getLogger(__name__) async def delete_external_channel(self: 'Usecase', input: dto.DeleteExternalChannelInput) -> None: await self.ensure_workspace_access(input.workspace_id, input.user_id) channel = await self.database.get_external_channel(input.workspace_id, channel_id=input.channel_id) if not channel: raise domain.ExternalChannelNotFound(input.channel_id) await self.database.delete_external_channel(input.channel_id) log.info('User %s deleted external channel %s', input.user_id, input.channel_id)