/
romaaaka
/
queuebot
Обзор
Документация
Войти
/
romaaaka
/
queuebot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/bot/middlewares/user.py
28 строк
968 B
Roman
make async session lifetime
23 апр 2025, 18:32
23 апр 2025, 18:32
7473186
Код
Авторство
О чём код?
from typing import Callable, Dict, Any, Awaitable from aiogram import types from dependency_injector.wiring import inject, Provide from containers import ServicesContainer from database.models import User from aiogram import BaseMiddleware from services.user_service import UserService class UserMiddleware(BaseMiddleware): async def __call__( self, handler: Callable[[types.Message, Dict[str, Any]], Awaitable[Any]], event: types.Message, data: Dict[str, Any] ) -> Any: services_container: ServicesContainer = data.get("services_container") user_service = services_container.user_service user_model = await user_service.to_model(event.from_user) user = await user_service.upsert(user_model, item_id=event.from_user.id, auto_commit=True, auto_refresh=True) if user.is_blocked: return data['user'] = user return await handler(event, data)