Files
shveitechbot/handlers/client/catalogue.py

41 lines
1014 B
Python

from aiogram import Router, F
from aiogram.types import CallbackQuery
from aiogram.fsm.context import FSMContext
from sqlalchemy.ext.asyncio import AsyncSession
from config import VERIFIED_ACCOUNTS
from misc.kb.client import (
render_catalogue,
)
from services.catalogue import CatalogueService
router = Router()
@router.callback_query(F.data.startswith("cat:"))
async def subcatalogue(
cb: CallbackQuery,
state: FSMContext,
session: AsyncSession,
catalogue_service: CatalogueService,
):
await state.clear()
cat_id = cb.data.split(":")[1]
is_admin = cb.from_user.id in VERIFIED_ACCOUNTS
view = await catalogue_service.build_category_view(session, cat_id)
kb = render_catalogue(view, is_admin=is_admin)
if cb.message.photo:
await cb.message.delete()
await cb.answer(
"category selection",
reply_markup=kb,
)
return
await cb.message.edit_text(
"category selection",
reply_markup=kb,
)