1414from models_library .products import ProductName
1515from models_library .socketio import SocketMessageDict
1616from models_library .users import UserID
17+ from pydantic import TypeAdapter
1718from servicelib .aiohttp .observer import emit
1819from servicelib .logging_errors import create_troubleshootting_log_kwargs
1920from servicelib .logging_utils import get_log_record_extra , log_context
2223from ..groups .api import list_user_groups_ids_with_read_access
2324from ..login .decorators import login_required
2425from ..products import products_web
25- from ..products .models import Product
2626from ..resource_manager .user_sessions import managed_resource
2727from ._utils import EnvironDict , SocketID , get_socket_server , register_socketio_handler
2828from .messages import SOCKET_IO_HEARTBEAT_EVENT , send_message_to_user
@@ -52,9 +52,11 @@ async def _handler(request: web.Request) -> tuple[UserID, ProductName, str]:
5252 web.HTTPUnauthorized: when the user is not recognized. Keeps the original request
5353 """
5454 app = request .app
55- user_id = UserID (request .get (RQT_USERID_KEY , _ANONYMOUS_USER_ID ))
55+ user_id = TypeAdapter (UserID ).validate_python (
56+ request .get (RQT_USERID_KEY , _ANONYMOUS_USER_ID )
57+ )
5658 client_session_id = request .query .get ("client_session_id" , None )
57- product : Product = products_web .get_current_product (request )
59+ product = products_web .get_current_product (request )
5860
5961 _logger .debug (
6062 "client %s,%s authenticated" , f"{ user_id = } " , f"{ client_session_id = } "
@@ -165,7 +167,6 @@ async def connect(
165167async def disconnect (socket_id : SocketID , app : web .Application ) -> None :
166168 """socketio reserved handler for when the socket.io connection is disconnected."""
167169 async with contextlib .AsyncExitStack () as stack :
168-
169170 # retrieve the socket session
170171 try :
171172 socketio_session = await stack .enter_async_context (
@@ -184,7 +185,6 @@ async def disconnect(socket_id: SocketID, app: web.Application) -> None:
184185
185186 # session is wel formed, we can access its data
186187 try :
187-
188188 user_id = socketio_session ["user_id" ]
189189 client_session_id = socketio_session ["client_session_id" ]
190190 product_name = socketio_session ["product_name" ]
0 commit comments