26 lines
736 B
Python
26 lines
736 B
Python
from __future__ import annotations
|
|
|
|
from typing import Any, Awaitable, Callable
|
|
|
|
from aiogram import BaseMiddleware
|
|
from aiogram.types import TelegramObject
|
|
|
|
from bot.config import Settings
|
|
from bot.storage import Storage
|
|
|
|
|
|
class InjectMiddleware(BaseMiddleware):
|
|
def __init__(self, settings: Settings, storage: Storage) -> None:
|
|
self.settings = settings
|
|
self.storage = storage
|
|
|
|
async def __call__(
|
|
self,
|
|
handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]],
|
|
event: TelegramObject,
|
|
data: dict[str, Any],
|
|
) -> Any:
|
|
data["settings"] = self.settings
|
|
data["storage"] = self.storage
|
|
return await handler(event, data)
|