У меня есть 2 файла с обработчиками (хендлерами) - 1 для пользовательских команд, 2 для команд администраторов. Команды могут совпадать. При подключении первым в очереди стоит роутер с хендлерами администраторских команд. И к нему подключен middleware который достает из базы данных id админов, и сверяет с id пользователя отправившего сообщения. Если пользователь есть в базе данных, то возвращается await handler(event, data). Но если нет, middleware должен перенаправлять обработку события в другой роутер. Как мне это сделать в middleware? Вот мой текущий middleware:
class IsAdmin(BaseMiddleware):
async def __call__(self,
handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable],
event: TelegramObject,
data: Dict[str, Any]) -> Any:
users_id = await admin_users()
print(users_id)
if event.from_user.id in users_id:
return await handler(event, data)
P.S. просто возвращение None не помогает