aboutsummaryrefslogtreecommitdiff
path: root/handlers/middleware.py
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2026-04-20 20:56:35 +0300
committerTolmachev Igor <me@igorek.dev>2026-04-20 20:56:35 +0300
commit75e99ca0712a2c09230e5c6f8d093dc526cc717d (patch)
treef3f00494364a82b866f093651cb9a08030135c4e /handlers/middleware.py
parentf186fca0f1aa9bbe5eab7613f229df527b2ab774 (diff)
downloadvpn_manager_bot-75e99ca0712a2c09230e5c6f8d093dc526cc717d.tar.gz
vpn_manager_bot-75e99ca0712a2c09230e5c6f8d093dc526cc717d.zip
Add users command
Diffstat (limited to 'handlers/middleware.py')
-rw-r--r--handlers/middleware.py24
1 files changed, 24 insertions, 0 deletions
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
5from sqlalchemy.ext.asyncio import AsyncSession 5from sqlalchemy.ext.asyncio import AsyncSession
6 6
7from database import sessions 7from database import sessions
8from libs.user import set_user_cache
8from models import User 9from models import User
10from models.user import UserCache
9 11
10 12
11class InjectSessionMiddleware(BaseMiddleware): 13class InjectSessionMiddleware(BaseMiddleware):
@@ -54,3 +56,25 @@ class UserAccessMiddleware(BaseMiddleware):
54 data["user"] = user 56 data["user"] = user
55 57
56 return await handler(event, data) 58 return await handler(event, data)
59
60
61class UserCacheMiddleware(BaseMiddleware):
62 async def __call__(
63 self,
64 handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]],
65 event: TelegramObject,
66 data: dict[str, Any],
67 ) -> Any:
68 if not isinstance(event, (Message, CallbackQuery)):
69 raise TypeError(
70 f"UserAccessMiddleware doesn't support event with type: {type(event).__name__}",
71 event,
72 )
73
74 if isinstance(event, Message):
75 user_cache = UserCache.from_chat(event.chat)
76 else:
77 user_cache = UserCache.from_user(event.from_user)
78
79 await set_user_cache(user_cache)
80 return await handler(event, data)