intra_max_chatbot/bot/handlers/menu.py

41 lines
1.3 KiB
Python

"""Обработчик главного меню."""
from maxapi.dispatcher import Router
from maxapi.filters import F
from maxapi.types.updates.message_callback import MessageCallback
from maxapi.context import BaseContext
from bot.keyboards import main_menu_kb
from bot.send_helper import bot_reply
from database.queries.organizations import get_organization
router = Router(router_id="menu")
async def _main_menu_text(bot_user: dict) -> str:
org_id = bot_user.get("org_id")
if org_id:
org = await get_organization(org_id)
org_name = org["name"] if org else None
else:
org_name = None
if org_name:
return f"🏠 {org_name}\nВыберите действие:"
return "🏠 Главное меню\nВыберите действие:"
@router.message_callback(F.callback.payload == "main_menu")
async def cb_main_menu(
event: MessageCallback, context: BaseContext, bot_user: dict
) -> None:
await context.set_state(None)
await event.answer(notification="")
text = await _main_menu_text(bot_user)
await bot_reply(
event,
text=text,
attachments=[main_menu_kb()],
user_id=bot_user["max_user_id"],
chat_id=event.message.recipient.chat_id if event.message else None,
)