backend: Remove room preferences controller and related methods from storage service

This commit is contained in:
Carlos Santos 2025-04-07 20:20:49 +02:00
parent a17bcd5771
commit 814f75c4a1
2 changed files with 0 additions and 104 deletions

View File

@ -1,55 +0,0 @@
import { container } from '../../config/dependency-injector.config.js';
import { Request, Response } from 'express';
import { LoggerService } from '../../services/logger.service.js';
import { MeetStorageService } from '../../services/storage/index.js';
import { OpenViduMeetError } from '../../models/error.model.js';
export const updateRoomPreferences = async (req: Request, res: Response) => {
const logger = container.get(LoggerService);
logger.verbose(`Updating room preferences: ${JSON.stringify(req.body)}`);
const { roomId, roomPreferences } = req.body;
try {
const preferenceService = container.get(MeetStorageService);
preferenceService.validateRoomPreferences(roomPreferences);
const savedPreferences = await preferenceService.updateOpenViduRoomPreferences(roomId, roomPreferences);
return res
.status(200)
.json({ message: 'Room preferences updated successfully.', preferences: savedPreferences });
} catch (error) {
if (error instanceof OpenViduMeetError) {
logger.error(`Error saving room preferences: ${error.message}`);
return res.status(error.statusCode).json({ name: error.name, message: error.message });
}
logger.error('Error saving room preferences:' + error);
return res.status(500).json({ message: 'Error saving room preferences', error });
}
};
export const getRoomPreferences = async (req: Request, res: Response) => {
const logger = container.get(LoggerService);
try {
const { roomId } = req.params;
const preferenceService = container.get(MeetStorageService);
const preferences = await preferenceService.getOpenViduRoomPreferences(roomId);
if (!preferences) {
return res.status(404).json({ message: 'Room preferences not found' });
}
return res.status(200).json(preferences);
} catch (error) {
if (error instanceof OpenViduMeetError) {
logger.error(`Error getting room preferences: ${error.message}`);
return res.status(error.statusCode).json({ name: error.name, message: error.message });
}
logger.error('Error getting room preferences:' + error);
return res.status(500).json({ message: 'Error fetching room preferences from database', error });
}
};

View File

@ -121,55 +121,6 @@ export class MeetStorageService<G extends GlobalPreferences = GlobalPreferences,
return this.storageProvider.deleteMeetRoom(roomId);
}
//TODO: REMOVE THIS METHOD
async getOpenViduRoomPreferences(roomId: string): Promise<MeetRoomPreferences> {
const openviduRoom = await this.getMeetRoom(roomId);
if (!openviduRoom.preferences) {
throw new Error('Room preferences not found');
}
return openviduRoom.preferences;
}
/**
* TODO: Move validation to the controller layer
* Updates room preferences in storage.
* @param {RoomPreferences} roomPreferences
* @returns {Promise<GlobalPreferences>}
*/
async updateOpenViduRoomPreferences(roomId: string, roomPreferences: MeetRoomPreferences): Promise<R> {
this.validateRoomPreferences(roomPreferences);
const openviduRoom = await this.getMeetRoom(roomId);
openviduRoom.preferences = roomPreferences;
return this.saveMeetRoom(openviduRoom);
}
/**
* Validates the room preferences.
* @param {RoomPreferences} preferences
*/
validateRoomPreferences(preferences: MeetRoomPreferences) {
const { recordingPreferences, chatPreferences, virtualBackgroundPreferences } = preferences;
if (!recordingPreferences || !chatPreferences || !virtualBackgroundPreferences) {
throw new Error('All room preferences must be provided');
}
if (typeof preferences.recordingPreferences.enabled !== 'boolean') {
throw new Error('Invalid value for recordingPreferences.enabled');
}
if (typeof preferences.chatPreferences.enabled !== 'boolean') {
throw new Error('Invalid value for chatPreferences.enabled');
}
if (typeof preferences.virtualBackgroundPreferences.enabled !== 'boolean') {
throw new Error('Invalid value for virtualBackgroundPreferences.enabled');
}
}
/**
* Returns the default global preferences.
* @returns {G}