backend: Add meeting controller with endMeeting functionality
This commit is contained in:
parent
9fb281626d
commit
2ae88d28b6
@ -1,6 +1,7 @@
|
||||
export * from './auth.controller.js';
|
||||
export * from './recording.controller.js';
|
||||
export * from './room.controller.js';
|
||||
export * from './meeting.controller.js';
|
||||
export * from './participant.controller.js';
|
||||
export * from './livekit-webhook.controller.js';
|
||||
|
||||
|
||||
34
backend/src/controllers/meeting.controller.ts
Normal file
34
backend/src/controllers/meeting.controller.ts
Normal file
@ -0,0 +1,34 @@
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { Request, Response } from 'express';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { OpenViduMeetError } from '../models/index.js';
|
||||
import { LiveKitService } from '../services/livekit.service.js';
|
||||
|
||||
export const endMeeting = async (req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
const livekitService = container.get(LiveKitService);
|
||||
const { roomId } = req.params;
|
||||
|
||||
try {
|
||||
// To end a meeting, we need to delete the room from LiveKit
|
||||
await livekitService.deleteRoom(roomId);
|
||||
res.status(200).json({ message: 'Meeting ended successfully' });
|
||||
} catch (error) {
|
||||
logger.error(`Error ending meeting from room: ${roomId}`);
|
||||
return handleError(res, error);
|
||||
}
|
||||
};
|
||||
|
||||
const handleError = (res: Response, error: OpenViduMeetError | unknown) => {
|
||||
const logger = container.get(LoggerService);
|
||||
logger.error(String(error));
|
||||
|
||||
if (error instanceof OpenViduMeetError) {
|
||||
res.status(error.statusCode).json({ name: error.name, message: error.message });
|
||||
} else {
|
||||
res.status(500).json({
|
||||
name: 'Meeting Error',
|
||||
message: 'Internal server error. Meeting operation failed'
|
||||
});
|
||||
}
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user