cloud_bbb/ts/Manager/Api.ts

48 lines
922 B
TypeScript

import axios from '@nextcloud/axios';
export interface Room {
id: number;
uid: string;
name: string;
welcome: string;
maxParticipants: number;
record: boolean;
}
class Api {
public getUrl(endpoint: string): string {
return OC.generateUrl(`apps/bbb/${endpoint}`);
}
public async getRooms(): Promise<Room[]> {
const response = await axios.get(this.getUrl('rooms'));
return response.data;
}
public async createRoom(name: string) {
const response = await axios.post(this.getUrl('rooms'), {
name,
welcome: '',
maxParticipants: 0,
record: false,
});
return response.data;
}
public async updateRoom(room: Room) {
const response = await axios.put(this.getUrl(`rooms/${room.id}`), room);
return response.data;
}
public async deleteRoom(id: number) {
const response = await axios.delete( this.getUrl(`rooms/${id}`));
return response.data;
}
}
export const api = new Api();