From 59c464387b8e2fb16fcf34f1f72ad2ce9699d70d Mon Sep 17 00:00:00 2001 From: juancarmore Date: Thu, 26 Feb 2026 21:57:59 +0100 Subject: [PATCH] backend: add partial update method for recordings and refactor update logic --- .../src/repositories/recording.repository.ts | 16 ++++++++++++++-- .../src/services/livekit-webhook.service.ts | 2 +- .../backend/src/services/recording.service.ts | 6 +++--- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/meet-ce/backend/src/repositories/recording.repository.ts b/meet-ce/backend/src/repositories/recording.repository.ts index f4acf29e..0023292f 100644 --- a/meet-ce/backend/src/repositories/recording.repository.ts +++ b/meet-ce/backend/src/repositories/recording.repository.ts @@ -63,13 +63,25 @@ export class RecordingRepository extends BaseRepository): Promise { + return this.updatePartialOne({ recordingId }, fieldsToUpdate); + } + + /** + * Replaces an existing recording with new data. * * @param recording - The recording data to update * @returns The updated recording (without access secrets) * @throws Error if recording not found */ - async update(recording: MeetRecordingInfo): Promise { + async replace(recording: MeetRecordingInfo): Promise { return this.replaceOne({ recordingId: recording.recordingId }, recording); } diff --git a/meet-ce/backend/src/services/livekit-webhook.service.ts b/meet-ce/backend/src/services/livekit-webhook.service.ts index deeffb9d..ecda2cf9 100644 --- a/meet-ce/backend/src/services/livekit-webhook.service.ts +++ b/meet-ce/backend/src/services/livekit-webhook.service.ts @@ -316,7 +316,7 @@ export class LivekitWebhookService { recordingTask = this.recordingRepository.create(recordingInfo); } else { // Update existing recording - recordingTask = this.recordingRepository.update(recordingInfo); + recordingTask = this.recordingRepository.replace(recordingInfo); } const commonTasks = [recordingTask]; diff --git a/meet-ce/backend/src/services/recording.service.ts b/meet-ce/backend/src/services/recording.service.ts index 878e988d..20d40144 100644 --- a/meet-ce/backend/src/services/recording.service.ts +++ b/meet-ce/backend/src/services/recording.service.ts @@ -563,9 +563,9 @@ export class RecordingService { } async updateRecordingStatus(recordingId: string, status: MeetRecordingStatus): Promise { - const recordingInfo = await this.getRecording(recordingId); - recordingInfo.status = status; - await this.recordingRepository.update(recordingInfo); + // Ensure recording exists before updating + await this.getRecording(recordingId, ['recordingId']); + await this.recordingRepository.updatePartial(recordingId, { status }); } /**