import { prepareAPI, sendRequest } from './api.ts';import { CreateRoomParams, CreateRoomResponse } from './types/createRoom.ts';import { JoinTokenParams, JoinTokenResponse } from './types/joinToken.ts';import { IsRoomActiveParams, IsRoomActiveResponse } from './types/isRoomActive.ts';import { ActiveRoomInfoParams, ActiveRoomInfoResponse,} from './types/activeRoomInfo.ts';import { ActiveRoomsInfoResponse } from './types/activeRoomsInfo.ts';import { EndRoomParams, EndRoomResponse } from './types/endRoom.ts';import { FetchRecordingsParams, FetchRecordingsResponse,} from './types/fetchRecordings.ts';import { DeleteRecordingsParams, DeleteRecordingsResponse,} from './types/deleteRecordings.ts';import { RecordingDownloadTokenParams, RecordingDownloadTokenResponse,} from './types/RecordingDownloadToken.ts';import { ClientFilesResponse } from './types/clientFiles.ts';
export class PlugNmeet { protected defaultPath = '/auth';
constructor(serverUrl: string, apiKey: string, apiSecret: string) { prepareAPI(serverUrl + this.defaultPath, apiKey, apiSecret); }
public async createRoom( params: CreateRoomParams, ): Promise<CreateRoomResponse> { const output = await sendRequest('/room/create', params); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, roomInfo: output.response.roomInfo, }; }
public async getJoinToken( params: JoinTokenParams, ): Promise<JoinTokenResponse> { const output = await sendRequest('/room/getJoinToken', params); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, token: output.response.token, }; }
public async isRoomActive( params: IsRoomActiveParams, ): Promise<IsRoomActiveResponse> { const output = await sendRequest('/room/isRoomActive', params); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, }; }
public async getActiveRoomInfo( params: ActiveRoomInfoParams, ): Promise<ActiveRoomInfoResponse> { const output = await sendRequest('/room/getActiveRoomInfo', params); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, room: output.response.room, }; }
public async getActiveRoomsInfo(): Promise<ActiveRoomsInfoResponse> { const output = await sendRequest('/room/getActiveRoomsInfo', {}); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, rooms: output.response.rooms, }; }
public async endRoom(params: EndRoomParams): Promise<EndRoomResponse> { const output = await sendRequest('/room/endRoom', params); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, }; }
public async fetchRecordings( params: FetchRecordingsParams, ): Promise<FetchRecordingsResponse> { const output = await sendRequest('/recording/fetch', params); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, result: output.response.result, }; }
public async deleteRecordings( params: DeleteRecordingsParams, ): Promise<DeleteRecordingsResponse> { const output = await sendRequest('/recording/delete', params); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, }; }
public async getRecordingDownloadToken( params: RecordingDownloadTokenParams, ): Promise<RecordingDownloadTokenResponse> { const output = await sendRequest('/recording/getDownloadToken', params); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, token: output.response.token, }; }
public async getClientFiles(): Promise<ClientFilesResponse> { const output = await sendRequest('/getClientFiles', {}); if (!output.status) { return { status: false, msg: output.response, }; }
return { status: output.response.status, msg: output.response.msg, css: output.response.css, js: output.response.js, }; }}