From cec07a2577e11bb95f2d933559482a39eb3d5f0c Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Mon, 17 Mar 2025 11:46:19 +0100 Subject: [PATCH] backend: Refactor recording model imports and add new recording typings --- backend/src/helpers/recording.helper.ts | 6 +++--- backend/src/models/index.ts | 1 - backend/src/models/room.model.ts | 2 +- backend/src/services/livekit-webhook.service.ts | 2 +- backend/src/services/openvidu-webhook.service.ts | 3 +-- backend/src/services/recording.service.ts | 2 +- typings/src/index.ts | 1 + {backend/src/models => typings/src}/recording.model.ts | 8 ++++---- 8 files changed, 12 insertions(+), 13 deletions(-) rename {backend/src/models => typings/src}/recording.model.ts (78%) diff --git a/backend/src/helpers/recording.helper.ts b/backend/src/helpers/recording.helper.ts index 3316598..9f5d7c6 100644 --- a/backend/src/helpers/recording.helper.ts +++ b/backend/src/helpers/recording.helper.ts @@ -1,5 +1,5 @@ import { EgressInfo } from 'livekit-server-sdk'; -import { RecordingInfo, RecordingOutputMode, RecordingStatus } from '../models/recording.model.js'; +import { RecordingInfo, RecordingOutputMode, RecordingStatus } from '@typings-ce'; import { EgressStatus } from '@livekit/protocol'; import { DataTopic } from '../models/signal.model.js'; @@ -19,8 +19,8 @@ export class RecordingHelper { outputMode, status, filename, - startedAt, - endedAt: endTimeInMilliseconds, + creationDate: startedAt, + endDate: endTimeInMilliseconds, duration, size }; diff --git a/backend/src/models/index.ts b/backend/src/models/index.ts index c89d34a..5bee462 100644 --- a/backend/src/models/index.ts +++ b/backend/src/models/index.ts @@ -1,4 +1,3 @@ -export * from './recording.model.js'; export * from './room.model.js'; export * from './error.model.js'; export * from './signal.model.js'; diff --git a/backend/src/models/room.model.ts b/backend/src/models/room.model.ts index 8a0c3ab..7cce003 100644 --- a/backend/src/models/room.model.ts +++ b/backend/src/models/room.model.ts @@ -1,4 +1,4 @@ -import { RecordingInfo } from './recording.model.js'; +import { RecordingInfo } from '@typings-ce'; export interface RoomStatusData { isRecordingStarted: boolean; diff --git a/backend/src/services/livekit-webhook.service.ts b/backend/src/services/livekit-webhook.service.ts index 038e48a..d581e65 100644 --- a/backend/src/services/livekit-webhook.service.ts +++ b/backend/src/services/livekit-webhook.service.ts @@ -3,7 +3,7 @@ import { EgressInfo, ParticipantInfo, Room, SendDataOptions, WebhookEvent, Webho import { RecordingHelper } from '../helpers/recording.helper.js'; import { DataTopic } from '../models/signal.model.js'; import { LiveKitService } from './livekit.service.js'; -import { RecordingInfo, RecordingStatus } from '../models/recording.model.js'; +import { RecordingInfo, RecordingStatus } from '@typings-ce'; import { LIVEKIT_API_KEY, LIVEKIT_API_SECRET, MEET_NAME_ID } from '../environment.js'; import { LoggerService } from './logger.service.js'; import { RoomService } from './room.service.js'; diff --git a/backend/src/services/openvidu-webhook.service.ts b/backend/src/services/openvidu-webhook.service.ts index 81a1e25..5644573 100644 --- a/backend/src/services/openvidu-webhook.service.ts +++ b/backend/src/services/openvidu-webhook.service.ts @@ -3,8 +3,7 @@ import { inject, injectable } from '../config/dependency-injector.config.js'; import { Room } from 'livekit-server-sdk'; import { LoggerService } from './logger.service.js'; import { MEET_API_KEY, MEET_WEBHOOK_ENABLED, MEET_WEBHOOK_URL } from '../environment.js'; -import { OpenViduWebhookEvent, OpenViduWebhookEventType } from '@typings-ce'; -import { RecordingInfo } from '../models/recording.model.js'; +import { OpenViduWebhookEvent, OpenViduWebhookEventType, RecordingInfo } from '@typings-ce'; @injectable() export class OpenViduWebhookService { diff --git a/backend/src/services/recording.service.ts b/backend/src/services/recording.service.ts index bd6e588..472ec1c 100644 --- a/backend/src/services/recording.service.ts +++ b/backend/src/services/recording.service.ts @@ -18,7 +18,7 @@ import { import { S3Service } from './s3.service.js'; import { DataTopic } from '../models/signal.model.js'; import { LoggerService } from './logger.service.js'; -import { RecordingInfo, RecordingStatus } from '../models/recording.model.js'; +import { RecordingInfo, RecordingStatus } from '@typings-ce'; import { RecordingHelper } from '../helpers/recording.helper.js'; import { MEET_S3_BUCKET } from '../environment.js'; import { RoomService } from './room.service.js'; diff --git a/typings/src/index.ts b/typings/src/index.ts index 81a1bf4..0482a37 100644 --- a/typings/src/index.ts +++ b/typings/src/index.ts @@ -3,6 +3,7 @@ export * from './room-preferences.js'; export * from './participant.js'; export * from './token.js'; export * from './room.js'; +export * from './recording.model.js'; export * from './webhook.model.js'; export * from './permissions/livekit-permissions.js'; diff --git a/backend/src/models/recording.model.ts b/typings/src/recording.model.ts similarity index 78% rename from backend/src/models/recording.model.ts rename to typings/src/recording.model.ts index bde1b67..3e70c39 100644 --- a/backend/src/models/recording.model.ts +++ b/typings/src/recording.model.ts @@ -1,4 +1,4 @@ -export enum RecordingStatus { +export const enum RecordingStatus { STARTING = 'STARTING', STARTED = 'STARTED', STOPPING = 'STOPPING', @@ -7,7 +7,7 @@ export enum RecordingStatus { READY = 'READY' } -export enum RecordingOutputMode { +export const enum RecordingOutputMode { COMPOSED = 'COMPOSED', INDIVIDUAL = 'INDIVIDUAL' } @@ -22,8 +22,8 @@ export interface RecordingInfo { outputMode: RecordingOutputMode; status: RecordingStatus; filename?: string; - startedAt?: number; - endedAt?: number; + creationDate?: number; + endDate?: number; duration?: number; size?: number; }