mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
30 lines
784 B
Python
30 lines
784 B
Python
from abc import ABC, abstractmethod
|
|
from typing import Any, Awaitable, Callable, Dict, TypeVar
|
|
|
|
from aiogram.types import TelegramObject
|
|
|
|
T = TypeVar("T")
|
|
|
|
|
|
class BaseMiddleware(ABC):
|
|
"""
|
|
Generic middleware class
|
|
"""
|
|
|
|
@abstractmethod
|
|
async def __call__(
|
|
self,
|
|
handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable[Any]],
|
|
event: TelegramObject,
|
|
data: Dict[str, Any],
|
|
) -> Any: # pragma: no cover
|
|
"""
|
|
Execute middleware
|
|
|
|
:param handler: Wrapped handler in middlewares chain
|
|
:param event: Incoming event (Subclass of :class:`aiogram.types.base.TelegramObject`)
|
|
:param data: Contextual data. Will be mapped to handler arguments
|
|
:return: :class:`Any`
|
|
"""
|
|
pass
|