refactor: update LiveKit integration and clean up unused services

- Changed the base image in Dockerfile to use a lighter node:alpine version.
- Removed unused dependencies from package-lock.json and package.json, including @turbodocx/html-to-docx and jsdom.
- Simplified LiveKit module by removing unnecessary services (LiveKitParticipantService, LiveKitRoomService) and adjusting related schemas and services for better maintainability.
- Updated CollaborationSessionSchema to streamline access token creation and room management.
- Commented out unused imports and services in various modules to enhance code clarity and reduce complexity.
This commit is contained in:
2024-12-02 17:29:07 +07:00
parent 174290c9fb
commit b10d0cdde7
13 changed files with 444 additions and 2656 deletions

View File

@@ -1,15 +1,26 @@
import { Injectable } from '@nestjs/common'
import { LiveKitRoomService } from './livekit.room.service'
import { LiveKitParticipantService } from './livekit.participant.service'
import { User } from '@prisma/client'
import { Injectable, Logger } from '@nestjs/common'
// @ts-expect-error
import { RoomServiceClient, AccessToken } from 'livekit-server-sdk'
@Injectable()
export class LiveKitService {
constructor(
private liveKitRoomService: LiveKitRoomService,
private liveKitParticipantService: LiveKitParticipantService,
) {}
constructor() {}
async createAccessToken(participantId: string) {
return await this.liveKitParticipantService.createAccessToken(participantId)
async createToken(me: User, roomName: string) {
if (!process.env.LIVEKIT_API_KEY || !process.env.LIVEKIT_API_SECRET) {
throw new Error('LIVEKIT_API_KEY and LIVEKIT_API_SECRET must be set')
}
if (!me.name) {
throw new Error('User must have a name')
}
const token = new AccessToken(process.env.LIVEKIT_API_KEY as string, process.env.LIVEKIT_API_SECRET as string, {
identity: me.name,
})
token.addGrant({
roomJoin: true,
room: roomName,
})
return await token.toJwt()
}
}