From 0e580e62572fce3a400d119d36f52c544d63856c Mon Sep 17 00:00:00 2001 From: juancarmore Date: Mon, 14 Apr 2025 11:32:35 +0200 Subject: [PATCH] backend: Add error handling for invalid room secrets and update related service logic --- backend/src/models/error.model.ts | 13 +++++-------- backend/src/services/room.service.ts | 4 ++-- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/backend/src/models/error.model.ts b/backend/src/models/error.model.ts index 25cac1e..e4ee649 100644 --- a/backend/src/models/error.model.ts +++ b/backend/src/models/error.model.ts @@ -104,20 +104,17 @@ export const isErrorRecordingCannotBeStoppedWhileStarting = ( }; // Room errors + export const errorRoomNotFound = (roomId: string): OpenViduMeetError => { return new OpenViduMeetError('Room Error', `The room '${roomId}' does not exist`, 404); }; -// Participant errors - -export const errorParticipantUnauthorized = (roomId: string): OpenViduMeetError => { - return new OpenViduMeetError( - 'Participant Error', - `Unauthorized generating token with received credentials in room '${roomId}'`, - 406 - ); +export const errorInvalidRoomSecret = (roomId: string, secret: string): OpenViduMeetError => { + return new OpenViduMeetError('Room Error', `The secret '${secret}' is not recognized for room '${roomId}'`, 400); }; +// Participant errors + export const errorParticipantNotFound = (participantName: string, roomId: string): OpenViduMeetError => { return new OpenViduMeetError('Participant Error', `'${participantName}' not found in room '${roomId}'`, 404); }; diff --git a/backend/src/services/room.service.ts b/backend/src/services/room.service.ts index d201fa4..7b13a73 100644 --- a/backend/src/services/room.service.ts +++ b/backend/src/services/room.service.ts @@ -8,7 +8,7 @@ import { MeetRoom, MeetRoomFilters, MeetRoomOptions, MeetRoomPreferences, Partic import { MeetRoomHelper } from '../helpers/room.helper.js'; import { SystemEventService } from './system-event.service.js'; import { IScheduledTask, TaskSchedulerService } from './task-scheduler.service.js'; -import { errorParticipantUnauthorized, internalError } from '../models/error.model.js'; +import { errorInvalidRoomSecret, internalError } from '../models/error.model.js'; import { OpenViduComponentsAdapterHelper } from '../helpers/index.js'; import { uid } from 'uid/single'; import { MEET_NAME_ID } from '../environment.js'; @@ -242,7 +242,7 @@ export class RoomService { case publisherSecret: return ParticipantRole.PUBLISHER; default: - throw errorParticipantUnauthorized(roomId); + throw errorInvalidRoomSecret(roomId, secret); } }