backend: Refactor Livekit webhook handling to remove OpenVidu dependency and add room finished event handling
This commit is contained in:
parent
9f0877780e
commit
ca56521604
@ -2,7 +2,6 @@ import { Request, Response } from 'express';
|
|||||||
import { LoggerService } from '../services/logger.service.js';
|
import { LoggerService } from '../services/logger.service.js';
|
||||||
import { LivekitWebhookService } from '../services/livekit-webhook.service.js';
|
import { LivekitWebhookService } from '../services/livekit-webhook.service.js';
|
||||||
import { WebhookEvent } from 'livekit-server-sdk';
|
import { WebhookEvent } from 'livekit-server-sdk';
|
||||||
import { OpenViduWebhookService } from '../services/openvidu-webhook.service.js';
|
|
||||||
import { container } from '../config/dependency-injector.config.js';
|
import { container } from '../config/dependency-injector.config.js';
|
||||||
|
|
||||||
export const lkWebhookHandler = async (req: Request, res: Response) => {
|
export const lkWebhookHandler = async (req: Request, res: Response) => {
|
||||||
@ -10,7 +9,6 @@ export const lkWebhookHandler = async (req: Request, res: Response) => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const lkWebhookService = container.get(LivekitWebhookService);
|
const lkWebhookService = container.get(LivekitWebhookService);
|
||||||
const ovWebhookService = container.get(OpenViduWebhookService);
|
|
||||||
|
|
||||||
const webhookEvent: WebhookEvent = await lkWebhookService.getEventFromWebhook(
|
const webhookEvent: WebhookEvent = await lkWebhookService.getEventFromWebhook(
|
||||||
req.body,
|
req.body,
|
||||||
@ -39,7 +37,7 @@ export const lkWebhookHandler = async (req: Request, res: Response) => {
|
|||||||
await lkWebhookService.handleParticipantJoined(room!, participant!);
|
await lkWebhookService.handleParticipantJoined(room!, participant!);
|
||||||
break;
|
break;
|
||||||
case 'room_finished':
|
case 'room_finished':
|
||||||
await ovWebhookService.sendRoomFinishedWebhook(room!);
|
await lkWebhookService.handleRoomFinished(room!);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -160,6 +160,24 @@ export class LivekitWebhookService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles the event when a room is finished.
|
||||||
|
*
|
||||||
|
* This method sends a webhook notification indicating that the room has finished.
|
||||||
|
* If an error occurs while sending the webhook, it logs the error.
|
||||||
|
*
|
||||||
|
* @param {Room} room - The room object that has finished.
|
||||||
|
* @returns {Promise<void>} A promise that resolves when the webhook has been sent.
|
||||||
|
*/
|
||||||
|
async handleRoomFinished(room: Room) {
|
||||||
|
try {
|
||||||
|
await this.openViduWebhookService.sendRoomFinishedWebhook(room);
|
||||||
|
} catch (error) {
|
||||||
|
this.logger.error(`Error handling room finished event: ${error}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private async sendStatusSignal(roomName: string, roomId: string, participantSid: string) {
|
private async sendStatusSignal(roomName: string, roomId: string, participantSid: string) {
|
||||||
// Get recording list
|
// Get recording list
|
||||||
const recordingInfo = await this.recordingService.getAllRecordingsByRoom(roomName, roomId);
|
const recordingInfo = await this.recordingService.getAllRecordingsByRoom(roomName, roomId);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user