cloud_bbb/ts/Manager/Api.ts

48 lines
922 B
TypeScript
Raw Normal View History

2020-04-26 11:36:41 +02:00
import axios from '@nextcloud/axios';
export interface Room {
2020-04-26 22:41:06 +02:00
id: number;
uid: string;
name: string;
welcome: string;
maxParticipants: number;
record: boolean;
2020-04-26 11:36:41 +02:00
}
class Api {
public getUrl(endpoint: string): string {
2020-04-26 13:26:34 +02:00
return OC.generateUrl(`apps/bbb/${endpoint}`);
2020-04-26 11:36:41 +02:00
}
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();