Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from typing import Callable, Dict, Any, Awaitable
- from aiogram import BaseMiddleware
- from aiogram.types import TelegramObject
- from sqlalchemy.ext.asyncio import async_sessionmaker
- from bot.db.requests import Database # your class with database queries
- class DbMiddleware(BaseMiddleware):
- def __init__(self, session_factory: async_sessionmaker):
- self.factory = session_factory
- async def __call__(
- self,
- handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable[Any]],
- event: TelegramObject,
- data: Dict[str, Any],
- ) -> Any:
- async with self.factory() as session:
- data['db'] = Database(session)
- return await handler(event, data)
Advertisement
Add Comment
Please, Sign In to add comment