Files
tgex-backend/src/usecase/project/disconnect_project_by_tg_id.py
2026-01-07 14:00:35 +03:00

30 lines
1.0 KiB
Python

import logging
from typing import TYPE_CHECKING
from src import domain, dto
if TYPE_CHECKING:
from .. import Usecase
log = logging.getLogger(__name__)
async def disconnect_project_by_tg_id(self: 'Usecase', input: dto.DisconnectProjectByTgIdInput) -> None:
user = await self.database.get_user(telegram_id=input.user_telegram_id)
if not user:
log.warning(f'User with telegram_id {input.user_telegram_id} not found when disconnecting channel')
return
if user.telegram_user is None:
log.warning('User %s missing telegram profile when disconnecting channel', user.id)
return
project = await self.database.get_project_for_user_by_telegram(user.id, input.telegram_id)
if not project:
log.warning(f'Project channel {input.telegram_id} not found')
raise domain.ProjectNotFound()
project.status = domain.ProjectStatus.ARCHIVED
await self.database.update_project(project)
log.info('Project %s archived for channel %s', project.id, input.telegram_id)