From 7dffc6b60ac127d0a62008e8b2fe2410e1abacf2 Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Fri, 28 Mar 2025 10:19:41 +0100 Subject: [PATCH] backend: Prevent instantiation of utility classes by adding private constructors in helpers --- backend/src/helpers/ov-components-adapter.helper.ts | 4 ++++ backend/src/helpers/recording.helper.ts | 9 +++++++-- backend/src/helpers/room.helper.ts | 4 ++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/backend/src/helpers/ov-components-adapter.helper.ts b/backend/src/helpers/ov-components-adapter.helper.ts index 4900a19..57d0d23 100644 --- a/backend/src/helpers/ov-components-adapter.helper.ts +++ b/backend/src/helpers/ov-components-adapter.helper.ts @@ -13,6 +13,10 @@ const enum OpenViduComponentsDataTopic { } export class OpenViduComponentsAdapterHelper { + private constructor() { + // Prevent instantiation of this utility class + } + static generateRecordingSignal(recordingInfo: MeetRecordingInfo) { const options: SendDataOptions = { destinationSids: [], diff --git a/backend/src/helpers/recording.helper.ts b/backend/src/helpers/recording.helper.ts index f0a78fd..8fe5c57 100644 --- a/backend/src/helpers/recording.helper.ts +++ b/backend/src/helpers/recording.helper.ts @@ -3,6 +3,10 @@ import { MeetRecordingInfo, MeetRecordingOutputMode, MeetRecordingStatus } from import { EgressStatus } from '@livekit/protocol'; export class RecordingHelper { + private constructor() { + // Prevent instantiation of this utility class + } + static toRecordingInfo(egressInfo: EgressInfo): MeetRecordingInfo { const status = RecordingHelper.extractOpenViduStatus(egressInfo.status); const size = RecordingHelper.extractSize(egressInfo); @@ -140,8 +144,9 @@ export class RecordingHelper { * @param egressInfo - The EgressInfo object containing the endedAt value. * @returns The endedAt value converted to milliseconds. */ - static extractEndDate(egressInfo: EgressInfo): number { - return this.toMilliseconds(Number(egressInfo.endedAt ?? 0)); + static extractEndDate(egressInfo: EgressInfo): number | undefined { + const endDateMs = this.toMilliseconds(Number(egressInfo.endedAt ?? 0)); + return endDateMs !== 0 ? endDateMs : undefined; } /** diff --git a/backend/src/helpers/room.helper.ts b/backend/src/helpers/room.helper.ts index d42b137..8e3ce82 100644 --- a/backend/src/helpers/room.helper.ts +++ b/backend/src/helpers/room.helper.ts @@ -4,6 +4,10 @@ import { MEET_NAME_ID } from '../environment.js'; import { uid } from 'uid/single'; export class OpenViduRoomHelper { + private constructor() { + // Prevent instantiation of this utility class + } + /** * Converts an OpenViduMeetRoom object to an OpenViduMeetRoomOptions object. *