32 lines
852 B
Python
32 lines
852 B
Python
from aiogram import BaseMiddleware
|
|
from typing import Any, Callable
|
|
|
|
from redis.asyncio import Redis
|
|
|
|
from services.orders import OrderService
|
|
from services.catalogue import CatalogueService
|
|
|
|
|
|
class DIMiddleware(BaseMiddleware):
|
|
def __init__(
|
|
self,
|
|
order_service: OrderService,
|
|
catalogue_service: CatalogueService,
|
|
redis_client: Redis,
|
|
):
|
|
self._order_service = order_service
|
|
self._redis_client = redis_client
|
|
self._catalogue_service = catalogue_service
|
|
|
|
async def __call__(
|
|
self,
|
|
handler: Callable,
|
|
event: Any,
|
|
data: dict[str, Any],
|
|
) -> Any:
|
|
data["order_service"] = self._order_service
|
|
data["catalogue_service"] = self._catalogue_service
|
|
data["redis_client"] = self._redis_client
|
|
|
|
return await handler(event, data)
|