diff --git a/src/backend/core/api/viewsets.py b/src/backend/core/api/viewsets.py index e1777e62..ee25b82d 100644 --- a/src/backend/core/api/viewsets.py +++ b/src/backend/core/api/viewsets.py @@ -35,7 +35,7 @@ from rest_framework import ( ) from rest_framework.settings import api_settings -from core import enums, models, utils +from core import analytics, enums, models, utils from core.api.filters import ListFileFilter from core.enums import MEDIA_STORAGE_URL_PATTERN from core.recording.enums import FileExtension @@ -308,6 +308,16 @@ class RoomViewSet( if callback_id := self.request.data.get("callback_id"): RoomCreation().persist_callback_state(callback_id, room) + analytics.capture( + self.request.user, + analytics.AnalyticsEvent.ROOM_CREATED, + { + "room_id": str(room.pk), + "access_level": room.access_level, + "from_callback": bool(self.request.data.get("callback_id")), + }, + ) + def perform_update(self, serializer): """Persist the room update, then sync metadata to LiveKit.""" diff --git a/src/backend/core/external_api/viewsets.py b/src/backend/core/external_api/viewsets.py index 07ecf4f8..61142a9e 100644 --- a/src/backend/core/external_api/viewsets.py +++ b/src/backend/core/external_api/viewsets.py @@ -194,10 +194,12 @@ class RoomViewSet( role=models.RoleChoices.OWNER, ) + client_id = (self.request.auth or {}).get("client_id", "unknown") + # Log for auditing logger.info( "Room created via application: room_id=%s, user_id=%s, client_id=%s", room.id, self.request.user.id, - getattr(self.request.auth, "client_id", "unknown"), + client_id, )