Initial Commit

This commit is contained in:
2026-02-01 12:29:33 +07:00
commit d0b2a78618
31 changed files with 888 additions and 0 deletions

5
middlewares/__init__.py Normal file
View File

@@ -0,0 +1,5 @@
from .di import DIMiddleware
from .repository import RepositoryMiddleware
from .session import DBSessionMiddleware
__all__ = ["DIMiddleware", "RepositoryMiddleware", "DBSessionMiddleware"]

19
middlewares/di.py Normal file
View File

@@ -0,0 +1,19 @@
from aiogram import BaseMiddleware
from typing import Any, Callable
from services.orders import OrderService
class DIMiddleware(BaseMiddleware):
def __init__(self, order_service: OrderService):
self._order_service = order_service
async def __call__(
self,
handler: Callable,
event: Any,
data: dict[str, Any],
) -> Any:
data["order_service"] = self._order_service
return await handler(event, data)

View File

@@ -0,0 +1,9 @@
from aiogram import BaseMiddleware
from repositories.orders import OrderRepository
class RepositoryMiddleware(BaseMiddleware):
async def __call__(self, handler, event, data):
data["order_repo"] = OrderRepository()
return await handler(event, data)

12
middlewares/session.py Normal file
View File

@@ -0,0 +1,12 @@
from aiogram import BaseMiddleware
from sqlalchemy.ext.asyncio import async_sessionmaker
class DBSessionMiddleware(BaseMiddleware):
def __init__(self, session_factory: async_sessionmaker):
self.session_factory = session_factory
async def __call__(self, handler, event, data):
async with self.session_factory() as session:
data["session"] = session
return await handler(event, data)