From d3178eff5dad8f48fffdd6ccb2a66845f3846ede Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Tue, 1 Jul 2025 17:58:52 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(backend)=20serialize=20room=20pin=20c?= =?UTF-8?q?ode=20for=20frontend=20access?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add pin code to API response to enable frontend display of room access codes. UI implementation will follow in upcoming commits. --- src/backend/core/api/serializers.py | 4 ++-- .../core/tests/rooms/test_api_rooms_retrieve.py | 11 +++++++++++ src/frontend/src/features/rooms/api/ApiRoom.ts | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/backend/core/api/serializers.py b/src/backend/core/api/serializers.py index c5afa243..c35b5165 100644 --- a/src/backend/core/api/serializers.py +++ b/src/backend/core/api/serializers.py @@ -107,8 +107,8 @@ class RoomSerializer(serializers.ModelSerializer): class Meta: model = models.Room - fields = ["id", "name", "slug", "configuration", "access_level"] - read_only_fields = ["id", "slug"] + fields = ["id", "name", "slug", "configuration", "access_level", "pin_code"] + read_only_fields = ["id", "slug", "pin_code"] def to_representation(self, instance): """ diff --git a/src/backend/core/tests/rooms/test_api_rooms_retrieve.py b/src/backend/core/tests/rooms/test_api_rooms_retrieve.py index 1788f641..1ebbaf50 100644 --- a/src/backend/core/tests/rooms/test_api_rooms_retrieve.py +++ b/src/backend/core/tests/rooms/test_api_rooms_retrieve.py @@ -32,6 +32,7 @@ def test_api_rooms_retrieve_anonymous_private_pk(): "id": str(room.id), "is_administrable": False, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -51,6 +52,7 @@ def test_api_rooms_retrieve_anonymous_trusted_pk(): "id": str(room.id), "is_administrable": False, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -69,6 +71,7 @@ def test_api_rooms_retrieve_anonymous_private_pk_no_dashes(): "id": str(room.id), "is_administrable": False, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -85,6 +88,7 @@ def test_api_rooms_retrieve_anonymous_private_slug(): "id": str(room.id), "is_administrable": False, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -101,6 +105,7 @@ def test_api_rooms_retrieve_anonymous_private_slug_not_normalized(): "id": str(room.id), "is_administrable": False, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -209,6 +214,7 @@ def test_api_rooms_retrieve_anonymous_public(mock_token): "token": "foo", }, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -251,6 +257,7 @@ def test_api_rooms_retrieve_authenticated_public(mock_token): "token": "foo", }, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -295,6 +302,7 @@ def test_api_rooms_retrieve_authenticated_trusted(mock_token): "token": "foo", }, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -324,6 +332,7 @@ def test_api_rooms_retrieve_authenticated(): "id": str(room.id), "is_administrable": False, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -372,6 +381,7 @@ def test_api_rooms_retrieve_members(mock_token, django_assert_num_queries, setti "token": "foo", }, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } @@ -458,6 +468,7 @@ def test_api_rooms_retrieve_administrators( "token": "foo", }, "name": room.name, + "pin_code": room.pin_code, "slug": room.slug, } diff --git a/src/frontend/src/features/rooms/api/ApiRoom.ts b/src/frontend/src/features/rooms/api/ApiRoom.ts index 58d22b1e..554c47bd 100644 --- a/src/frontend/src/features/rooms/api/ApiRoom.ts +++ b/src/frontend/src/features/rooms/api/ApiRoom.ts @@ -14,6 +14,7 @@ export type ApiRoom = { id: string name: string slug: string + pin_code: string is_administrable: boolean access_level: ApiAccessLevel livekit?: ApiLiveKit