import { Jargon } from '../jargon' import { ListRoom, ResourceId, ResourceResponse, Room } from '../models' export interface FetchOpentokTokenParams { name?: string email?: string } export class Rooms { constructor(private jargon: Jargon) { } public list(): ResourceResponse { return this.jargon.request({ method: 'GET', url: '/rooms', }) } public fetch(roomId: ResourceId): ResourceResponse { return this.jargon.request({ method: 'GET', url: `/rooms/${roomId}`, }) } public fetchOpentokToken(roomId: ResourceId, params?: FetchOpentokTokenParams): ResourceResponse { return this.jargon.request({ method: 'GET', url: `rooms/${roomId}/join`, params, }).then((response) => response.token) } public create(payload?: Partial): ResourceResponse { return this.jargon.request({ method: 'POST', url: `/rooms`, data: { room: payload, }, }) } public update(roomId: ResourceId, payload: Partial): ResourceResponse { return this.jargon.request({ method: 'PUT', url: `/rooms/${roomId}`, data: { room: payload, }, }) } public remove(roomId: ResourceId): ResourceResponse { return this.jargon.request({ method: 'DELETE', url: `/rooms/${roomId}`, }) } }