From ee55f02aaae03d8c707874d6e28eff7c7cbbe03b Mon Sep 17 00:00:00 2001 From: juancarmore Date: Tue, 10 Feb 2026 11:16:40 +0100 Subject: [PATCH] frontend: update query parameter handling to support array values in recording, room member, room, and user services --- .../recordings/services/recording.service.ts | 3 ++- .../room-members/services/room-member.service.ts | 15 +++++++++------ .../lib/domains/rooms/services/room.service.ts | 3 ++- .../lib/domains/users/services/user.service.ts | 3 ++- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/recordings/services/recording.service.ts b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/recordings/services/recording.service.ts index b4c60ace..82f19309 100644 --- a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/recordings/services/recording.service.ts +++ b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/recordings/services/recording.service.ts @@ -80,7 +80,8 @@ export class RecordingService { Object.entries(filters).forEach(([key, value]) => { if (value) { - queryParams.set(key, value.toString()); + const stringValue = Array.isArray(value) ? value.join(',') : value.toString(); + queryParams.set(key, stringValue); } }); diff --git a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/room-members/services/room-member.service.ts b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/room-members/services/room-member.service.ts index 54a7d70f..82b82ccd 100644 --- a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/room-members/services/room-member.service.ts +++ b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/room-members/services/room-member.service.ts @@ -11,7 +11,8 @@ import { HttpService } from '../../../shared/services/http.service'; providedIn: 'root' }) export class RoomMemberService { - protected readonly ROOM_MEMBERS_API = `${HttpService.INTERNAL_API_PATH_PREFIX}/rooms`; + protected readonly ROOM_MEMBERS_API = `${HttpService.API_PATH_PREFIX}/rooms`; + protected readonly INTERNAL_ROOM_MEMBERS_API = `${HttpService.INTERNAL_API_PATH_PREFIX}/rooms`; constructor(protected httpService: HttpService) {} @@ -21,8 +22,9 @@ export class RoomMemberService { * @param roomId - The unique identifier of the room * @returns The API path for room member operations */ - protected getRoomMemberApiPath(roomId: string): string { - return `${this.ROOM_MEMBERS_API}/${roomId}/members`; + protected getRoomMemberApiPath(roomId: string, internal = false): string { + const baseApi = internal ? this.INTERNAL_ROOM_MEMBERS_API : this.ROOM_MEMBERS_API; + return `${baseApi}/${roomId}/members`; } /** @@ -61,8 +63,9 @@ export class RoomMemberService { const queryParams = new URLSearchParams(); Object.entries(filters).forEach(([key, value]) => { - if (value !== undefined && value !== null) { - queryParams.set(key, value.toString()); + if (value) { + const stringValue = Array.isArray(value) ? value.join(',') : value.toString(); + queryParams.set(key, stringValue); } }); @@ -149,7 +152,7 @@ export class RoomMemberService { roomId: string, tokenOptions: MeetRoomMemberTokenOptions ): Promise<{ token: string }> { - const path = `${this.getRoomMemberApiPath(roomId)}/token`; + const path = `${this.getRoomMemberApiPath(roomId, true)}/token`; return this.httpService.postRequest(path, tokenOptions); } } diff --git a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/rooms/services/room.service.ts b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/rooms/services/room.service.ts index 8b44d8d3..28672d8e 100644 --- a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/rooms/services/room.service.ts +++ b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/rooms/services/room.service.ts @@ -66,7 +66,8 @@ export class RoomService { Object.entries(filters).forEach(([key, value]) => { if (value) { - queryParams.set(key, value.toString()); + const stringValue = Array.isArray(value) ? value.join(',') : value.toString(); + queryParams.set(key, stringValue); } }); diff --git a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/users/services/user.service.ts b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/users/services/user.service.ts index 57eb891e..9fc7ef4e 100644 --- a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/users/services/user.service.ts +++ b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/users/services/user.service.ts @@ -41,7 +41,8 @@ export class UserService { Object.entries(filters).forEach(([key, value]) => { if (value) { - queryParams.set(key, value.toString()); + const stringValue = Array.isArray(value) ? value.join(',') : value.toString(); + queryParams.set(key, stringValue); } });