61 lines
2.3 KiB
Python
61 lines
2.3 KiB
Python
from aiogram import Router, F
|
||
from aiogram.filters import Command
|
||
from aiogram.types import Message
|
||
|
||
from keyboards.main_menu import get_main_menu
|
||
from services.api_client import api_client
|
||
|
||
router = Router()
|
||
|
||
|
||
@router.message(Command("unlink"))
|
||
async def cmd_unlink(message: Message):
|
||
"""Handle /unlink command to disconnect Telegram account."""
|
||
user = await api_client.get_user_by_telegram_id(message.from_user.id)
|
||
|
||
if not user:
|
||
await message.answer(
|
||
"Твой аккаунт не привязан к Game Marathon.\n"
|
||
"Привяжи его через настройки профиля на сайте.",
|
||
reply_markup=get_main_menu()
|
||
)
|
||
return
|
||
|
||
result = await api_client.unlink_telegram(message.from_user.id)
|
||
|
||
if result.get("success"):
|
||
await message.answer(
|
||
"<b>Аккаунт отвязан</b>\n\n"
|
||
"Ты больше не будешь получать уведомления.\n"
|
||
"Чтобы привязать аккаунт снова, используй кнопку в настройках профиля на сайте.",
|
||
reply_markup=get_main_menu()
|
||
)
|
||
else:
|
||
await message.answer(
|
||
"Произошла ошибка при отвязке аккаунта.\n"
|
||
"Попробуй позже или обратись к администратору.",
|
||
reply_markup=get_main_menu()
|
||
)
|
||
|
||
|
||
@router.message(Command("status"))
|
||
async def cmd_status(message: Message):
|
||
"""Check account link status."""
|
||
user = await api_client.get_user_by_telegram_id(message.from_user.id)
|
||
|
||
if user:
|
||
await message.answer(
|
||
f"<b>Статус аккаунта</b>\n\n"
|
||
f"✅ Аккаунт привязан\n"
|
||
f"👤 Никнейм: <b>{user.get('nickname', 'N/A')}</b>\n"
|
||
f"🆔 ID: {user.get('id', 'N/A')}",
|
||
reply_markup=get_main_menu()
|
||
)
|
||
else:
|
||
await message.answer(
|
||
"<b>Статус аккаунта</b>\n\n"
|
||
"❌ Аккаунт не привязан\n\n"
|
||
"Привяжи его через настройки профиля на сайте.",
|
||
reply_markup=get_main_menu()
|
||
)
|