UNPKG

@councilbox/shutter-js

Version:

Shutter API - javascript SDK

592 lines (523 loc) 10.6 kB
const { getOperationName } = require('./utils'); const LIST = ` query attendees($roomNumber: String!){ attendees(roomNumber: $roomNumber) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand raisedHand broadcasting mutedMic mutedCam displayName email language online data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const GET = ` query attendee($roomNumber: String!, $attendeeID: String!){ attendee(roomNumber: $roomNumber, attendeeID: $attendeeID) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand raisedHand broadcasting mutedMic mutedCam displayName email language online data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const GET_URL = ` query attendeeURL($roomNumber: String!, $attendeeID: String!){ attendeeURL(roomNumber: $roomNumber, attendeeID: $attendeeID) } `; const CREATE = ` mutation addAttendee($roomNumber: String!, $attendee: AttendeeInfo!) { addAttendee(roomNumber: $roomNumber, attendee: $attendee) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand broadcasting mutedMic mutedCam displayName email language data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const UPDATE = ` mutation updateAttendee($roomNumber: String!, $attendee: UpdateAttendeeInfo!) { updateAttendee(roomNumber: $roomNumber, attendee: $attendee) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand raisedHand broadcasting mutedMic mutedCam displayName email language data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const DELETE = ` mutation deleteAttendee($roomNumber: String!, $attendeeID: String!) { deleteAttendee(roomNumber: $roomNumber, attendeeID: $attendeeID) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand raisedHand broadcasting mutedMic mutedCam displayName email language online data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const MUTE = ` mutation muteAttendee($roomNumber: String!, $attendeeID: String!, $type: String!) { muteAttendee(roomNumber: $roomNumber, attendeeID: $attendeeID, type: $type) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand raisedHand broadcasting mutedMic mutedCam displayName email language online data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const RAISE_HAND = ` mutation raiseHand($roomNumber: String!, $attendeeID: String!) { raiseHand(roomNumber: $roomNumber, attendeeID: $attendeeID) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand raisedHand broadcasting mutedMic mutedCam displayName email language online data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const LOWER_HAND = ` mutation lowerHand($roomNumber: String!, $attendeeID: String!) { lowerHand(roomNumber: $roomNumber, attendeeID: $attendeeID) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand raisedHand broadcasting mutedMic mutedCam displayName email language online data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const GRANT_WORD = ` mutation grantWord($roomNumber: String!, $attendeeID: String!) { grantWord(roomNumber: $roomNumber, attendeeID: $attendeeID) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand raisedHand broadcasting mutedMic mutedCam displayName email language online data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const DENY_WORD = ` mutation denyWord($roomNumber: String!, $attendeeID: String!) { denyWord(roomNumber: $roomNumber, attendeeID: $attendeeID) { id externalID role canShareScreen canBroadcast canChat canMuteAudio canMuteVideo canMuteAudioAll canMuteVideoAll canShareFiles canSeeAttendeesList canRaiseHand raisedHand broadcasting mutedMic mutedCam displayName email language online data toolbarShortcuts { shareScreen captureFrame } requiredMediaPermits { video audio } } } `; const START_TRACK = ` mutation startTrack($roomNumber: String!, $attendeeID: String!, $type: String!) { startTrack(roomNumber: $roomNumber, attendeeID: $attendeeID, type: $type) { id externalID role broadcasting mutedMic mutedCam } } `; const STOP_TRACK = ` mutation stopTrack($roomNumber: String!, $attendeeID: String!, $type: String!) { stopTrack(roomNumber: $roomNumber, attendeeID: $attendeeID, type: $type) { id externalID role broadcasting mutedMic mutedCam } } `; module.exports = class Attendees { #shutterFetch constructor(shutterFetch) { this.#shutterFetch = shutterFetch; } async list({ roomNumber }) { const variables = { roomNumber }; const response = await this.#shutterFetch({ query: LIST, variables, operationName: getOperationName(LIST) }); if (response.errors) throw response.errors; return response.data.attendees; } async get({ roomNumber, id }) { const variables = { roomNumber, attendeeID: id }; const response = await this.#shutterFetch({ query: GET, variables, operationName: getOperationName(GET) }); if (response.errors) throw response.errors; return response.data.attendee; } async getURL({ roomNumber, id }) { const variables = { roomNumber, attendeeID: id }; const response = await this.#shutterFetch({ query: GET_URL, variables, operationName: getOperationName(GET_URL) }); if (response.errors) throw response.errors; return response.data.attendeeURL; } async create({ roomNumber, attendee }) { const variables = { roomNumber, attendee }; const response = await this.#shutterFetch({ query: CREATE, variables, operationName: getOperationName(CREATE) }); if (response.errors) throw response.errors; return response.data.addAttendee; } async update({ roomNumber, attendee }) { const variables = { roomNumber, attendee }; const response = await this.#shutterFetch({ query: UPDATE, variables, operationName: getOperationName(UPDATE) }); if (response.errors) throw response.errors; return response.data.updateAttendee; } async delete({ roomNumber, id }) { const variables = { roomNumber, attendeeID: id }; const response = await this.#shutterFetch({ query: DELETE, variables, operationName: getOperationName(DELETE) }); if (response.errors) throw response.errors; return response.data.deleteAttendee; } async mute({ roomNumber, id, type }) { const variables = { roomNumber, attendeeID: id, type }; const response = await this.#shutterFetch({ query: MUTE, variables, operationName: getOperationName(MUTE) }); if (response.errors) throw response.errors; return response.data.muteAttendee; } async raiseHand({ roomNumber, id }) { const variables = { roomNumber, attendeeID: id }; const response = await this.#shutterFetch({ query: RAISE_HAND, variables, operationName: getOperationName(RAISE_HAND) }); if (response.errors) throw response.errors; return response.data.raiseHand; } async lowerHand({ roomNumber, id }) { const variables = { roomNumber, attendeeID: id }; const response = await this.#shutterFetch({ query: LOWER_HAND, variables, operationName: getOperationName(LOWER_HAND) }); if (response.errors) throw response.errors; return response.data.lowerHand; } async grantWord({ roomNumber, id }) { const variables = { roomNumber, attendeeID: id }; const response = await this.#shutterFetch({ query: GRANT_WORD, variables, operationName: getOperationName(GRANT_WORD) }); if (response.errors) throw response.errors; return response.data.grantWord; } async denyWord({ roomNumber, id }) { const variables = { roomNumber, attendeeID: id }; const response = await this.#shutterFetch({ query: DENY_WORD, variables, operationName: getOperationName(DENY_WORD) }); if (response.errors) throw response.errors; return response.data.denyWord; } async startTrack({ roomNumber, id, type }) { const variables = { roomNumber, attendeeID: id, type }; const response = await this.#shutterFetch({ query: START_TRACK, variables, operationName: getOperationName(START_TRACK) }); if (response.errors) throw response.errors; return response.data.startTrack; } async stopTrack({ roomNumber, id, type }) { const variables = { roomNumber, attendeeID: id, type }; const response = await this.#shutterFetch({ query: STOP_TRACK, variables, operationName: getOperationName(STOP_TRACK) }); if (response.errors) throw response.errors; return response.data.stopTrack; } };