From ca68eb58d370f8e6bc91381e790ce00ea020b32a Mon Sep 17 00:00:00 2001 From: Zakhar Izmaylov Date: Sat, 9 Nov 2024 12:17:07 +0300 Subject: [PATCH] Add middlewaer datatabase # TODO --- middlewares/admin.py | 1 - middlewares/database.py | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 middlewares/database.py diff --git a/middlewares/admin.py b/middlewares/admin.py index f709d3cf..91b1cdce 100644 --- a/middlewares/admin.py +++ b/middlewares/admin.py @@ -14,7 +14,6 @@ class AdminMiddleware(BaseMiddleware): event: TelegramObject, data: Dict[str, Any], ) -> Any: - # Проверяем, является ли пользователь администратором user_id = None if isinstance(event, Message): diff --git a/middlewares/database.py b/middlewares/database.py new file mode 100644 index 00000000..9e505506 --- /dev/null +++ b/middlewares/database.py @@ -0,0 +1,23 @@ +from functools import wraps +from typing import Any, Awaitable, Callable, Dict + +import asyncpg +from aiogram import BaseMiddleware +from aiogram.types import CallbackQuery, Message, TelegramObject + +from config import DATABASE_URL + + +class AdminMiddleware(BaseMiddleware): + async def __call__( + self, + handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable[Any]], + event: TelegramObject, + data: Dict[str, Any], + ) -> Any: + session = await asyncpg.connect(DATABASE_URL) + data["session"] = session + try: + return await handler(event, data) + finally: + await session.close()