From 67ffc0a449da2443e427048b1fdfcad1f8cbeb6f Mon Sep 17 00:00:00 2001 From: Alex Root Junior Date: Tue, 27 Jul 2021 11:33:22 +0300 Subject: [PATCH] Reorder routers when resolve middlewares --- aiogram/dispatcher/event/telegram.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/aiogram/dispatcher/event/telegram.py b/aiogram/dispatcher/event/telegram.py index acd6a27b..022f3d41 100644 --- a/aiogram/dispatcher/event/telegram.py +++ b/aiogram/dispatcher/event/telegram.py @@ -67,7 +67,7 @@ class TelegramEventObserver: """ middlewares = [] - for router in self.router.chain_head: + for router in reversed(list(self.router.chain_head)): observer = router.observers[self.event_name] if outer: middlewares.extend(observer.outer_middlewares) @@ -167,8 +167,7 @@ class TelegramEventObserver: return wrapper def middleware( - self, - middleware: Optional[MiddlewareType] = None, + self, middleware: Optional[MiddlewareType] = None, ) -> Union[Callable[[MiddlewareType], MiddlewareType], MiddlewareType]: """ Decorator for registering inner middlewares @@ -198,8 +197,7 @@ class TelegramEventObserver: return wrapper(middleware) def outer_middleware( - self, - middleware: Optional[MiddlewareType] = None, + self, middleware: Optional[MiddlewareType] = None, ) -> Union[Callable[[MiddlewareType], MiddlewareType], MiddlewareType]: """ Decorator for registering outer middlewares