From 777b2da6cdc111eeb2f2573c738a44c5bed4dc41 Mon Sep 17 00:00:00 2001 From: juancarmore Date: Tue, 10 Jun 2025 17:25:42 +0200 Subject: [PATCH] frontend: update getRecordings method to accept filters and improve query parameters --- .../room-recordings.component.ts | 13 ++++++++++-- .../src/lib/services/http/http.service.ts | 21 ++++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.ts b/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.ts index 8450e01..56ef960 100644 --- a/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.ts +++ b/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.ts @@ -6,7 +6,12 @@ import { MatIconModule } from '@angular/material/icon'; import { MatToolbarModule } from '@angular/material/toolbar'; import { ActivatedRoute } from '@angular/router'; import { ContextService, HttpService } from '@lib/services'; -import { ActionService, MeetRecordingInfo, OpenViduComponentsUiModule } from 'shared-meet-components'; +import { + ActionService, + MeetRecordingFilters, + MeetRecordingInfo, + OpenViduComponentsUiModule +} from 'shared-meet-components'; @Component({ selector: 'app-room-recordings', @@ -99,7 +104,11 @@ export class RoomRecordingsComponent implements OnInit { private async loadRecordings() { try { - const response = await this.httpService.getRecordings(this.nextPageToken); + const recordingFilters: MeetRecordingFilters = { + roomId: this.roomId, + nextPageToken: this.nextPageToken + }; + const response = await this.httpService.getRecordings(recordingFilters); this.recordings.push(...response.recordings); this.recordings = this.sortRecordingsByDate(this.recordings); this.nextPageToken = response.pagination.nextPageToken; diff --git a/frontend/projects/shared-meet-components/src/lib/services/http/http.service.ts b/frontend/projects/shared-meet-components/src/lib/services/http/http.service.ts index b1101b6..38696c1 100644 --- a/frontend/projects/shared-meet-components/src/lib/services/http/http.service.ts +++ b/frontend/projects/shared-meet-components/src/lib/services/http/http.service.ts @@ -1,6 +1,7 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { + MeetRecordingFilters, MeetRecordingInfo, MeetRoom, MeetRoomOptions, @@ -114,7 +115,7 @@ export class HttpService { return `${this.API_PATH_PREFIX}/recordings/${recordingId}/media`; } - getRecordings(nextPageToken?: string): Promise<{ + getRecordings(filters?: MeetRecordingFilters): Promise<{ recordings: MeetRecordingInfo[]; pagination: { isTruncated: boolean; @@ -124,8 +125,22 @@ export class HttpService { }> { let path = `${this.API_PATH_PREFIX}/recordings`; - if (nextPageToken) { - path += `?nextPageToken=${nextPageToken}`; + if (filters) { + const params = new URLSearchParams(); + if (filters.maxItems) { + params.append('maxItems', filters.maxItems.toString()); + } + if (filters.nextPageToken) { + params.append('nextPageToken', filters.nextPageToken); + } + if (filters.roomId) { + params.append('roomId', filters.roomId); + } + if (filters.fields) { + params.append('fields', filters.fields); + } + + path += `?${params.toString()}`; } return this.getRequest(path);