File size: 638 Bytes
054900e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
from __future__ import annotations
from typing import TYPE_CHECKING, Any
from aiogram import BaseMiddleware
from bot.database.database import sessionmaker
if TYPE_CHECKING:
from collections.abc import Awaitable, Callable
from aiogram.types import TelegramObject
class DatabaseMiddleware(BaseMiddleware):
async def __call__(
self,
handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]],
event: TelegramObject,
data: dict[str, Any],
) -> Any:
async with sessionmaker() as session:
data["session"] = session
return await handler(event, data)
|