From 75e99ca0712a2c09230e5c6f8d093dc526cc717d Mon Sep 17 00:00:00 2001 From: Tolmachev Igor Date: Mon, 20 Apr 2026 20:56:35 +0300 Subject: Add users command --- handlers/middleware.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'handlers/middleware.py') diff --git a/handlers/middleware.py b/handlers/middleware.py index 87a117a..376f4a2 100644 --- a/handlers/middleware.py +++ b/handlers/middleware.py @@ -5,7 +5,9 @@ from aiogram.types import CallbackQuery, Message, TelegramObject from sqlalchemy.ext.asyncio import AsyncSession from database import sessions +from libs.user import set_user_cache from models import User +from models.user import UserCache class InjectSessionMiddleware(BaseMiddleware): @@ -54,3 +56,25 @@ class UserAccessMiddleware(BaseMiddleware): data["user"] = user return await handler(event, data) + + +class UserCacheMiddleware(BaseMiddleware): + async def __call__( + self, + handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]], + event: TelegramObject, + data: dict[str, Any], + ) -> Any: + if not isinstance(event, (Message, CallbackQuery)): + raise TypeError( + f"UserAccessMiddleware doesn't support event with type: {type(event).__name__}", + event, + ) + + if isinstance(event, Message): + user_cache = UserCache.from_chat(event.chat) + else: + user_cache = UserCache.from_user(event.from_user) + + await set_user_cache(user_cache) + return await handler(event, data) -- cgit v1.3