From 7f7c9ab3eb78170d261038c7793c1d66a36b045b Mon Sep 17 00:00:00 2001 From: tsygankoviva Date: Wed, 17 Jun 2026 11:55:42 +0300 Subject: [PATCH] =?UTF-8?q?ws-user-id-fix:=20=D0=BF=D0=B8=D1=88=D0=B5?= =?UTF-8?q?=D0=BC=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=B5=D1=81=D1=81=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=B1=D0=B4=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/src/api/v1/websocket.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/api/src/api/v1/websocket.py b/api/src/api/v1/websocket.py index 5fe1bce..274ddff 100644 --- a/api/src/api/v1/websocket.py +++ b/api/src/api/v1/websocket.py @@ -11,6 +11,7 @@ from sqlalchemy.exc import IntegrityError from fastapi import APIRouter, WebSocket, WebSocketDisconnect, status from sqlalchemy.ext.asyncio import AsyncSession +from src.repository.user_repository import UserRepository from src.services.budget_line_service import BudgetLineService from src.api.v1.deps import get_user_by_token from src.db.models.app_user import AppUser @@ -25,10 +26,13 @@ from src.services.user_service import UserService @asynccontextmanager -async def get_db_session(): +async def get_db_session(user_id: int | None = None): """Контекстный менеджер для получения сессии базы данных.""" db = SessionLocal() try: + if user_id is not None: + user_repo = UserRepository(db) + await user_repo.set_app_user_id(user_id=user_id) yield db finally: await db.close() @@ -603,8 +607,6 @@ async def login(websocket: WebSocket, **kwargs) -> int: return user.id - - def resolve_cell_key(event_data: dict) -> dict | None: data = event_data.get("data") @@ -738,7 +740,7 @@ async def process_websocket( case _: pass - async with get_db_session() as db: + async with get_db_session(user_id=user_id) as db: processor = processor_cls(db) data["result"] = await processor.process( event_data=data,