@webex/plugin-meetings 2.8.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/meeting/index.js +2 -0
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +38 -5
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +15 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +26 -0
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +11 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +24 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +8 -1
- package/dist/metrics/constants.js.map +1 -1
- package/package.json +6 -6
- package/src/meeting/index.js +7 -1
- package/src/meeting-info/meeting-info-v2.js +45 -0
- package/src/member/index.js +8 -0
- package/src/member/util.js +12 -0
- package/src/members/index.js +20 -0
- package/src/members/request.js +10 -0
- package/src/members/util.js +23 -2
- package/src/metrics/constants.js +8 -1
- package/test/unit/spec/meeting/index.js +15 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +19 -0
- package/test/unit/spec/member/index.js +23 -0
- package/test/unit/spec/member/util.js +50 -0
- package/test/unit/spec/members/index.js +23 -0
- package/test/unit/spec/members/request.js +21 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MembersRequest","MEETINGS","options","invitee","emailAddress","email","phoneNumber","locusUrl","ParameterError","requestParams","MembersUtil","getAddMemberRequestParams","request","memberIds","getAdmitMemberRequestParams","memberId","getRemoveMemberRequestParams","getMuteMemberRequestParams","moderator","getTransferHostToMemberRequestParams","url","tones","generateSendDTMFRequestParams","generateCancelInviteRequestParams","StatelessWebexPlugin"],"sources":["request.js"],"sourcesContent":["import {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {MEETINGS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nimport MembersUtil from './util';\n\n\n/**\n * @class MembersRequest\n */\nexport default class MembersRequest extends StatelessWebexPlugin {\n namespace = MEETINGS;\n\n /**\n *\n * @param {Object} options with format of {invitee: string, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl\n * @memberof MembersRequest\n */\n addMembers(options) {\n if (!(!options || !options.invitee || (!options.invitee.emailAddress || !options.invitee.email || !options.invitee.phoneNumber) || !options.locusUrl)) {\n throw new ParameterError('invitee must be passed and the associated locus url for this meeting object must be defined.');\n }\n const requestParams = MembersUtil.getAddMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n /**\n *\n * @param {Object} options\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl\n * @memberof MembersRequest\n */\n admitMember(options) {\n if (!options || !options.locusUrl || !options.memberIds) {\n throw new ParameterError('memberIds must be an array passed and the associated locus url for this meeting object must be defined.');\n }\n const requestParams = MembersUtil.getAdmitMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n removeMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError('memberId must be defined, and the associated locus url for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.getRemoveMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n muteMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError('memberId must be defined, and the associated locus url for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.getMuteMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n transferHostToMember(options) {\n if (!options || !options.locusUrl || !options.memberId || !options.moderator) {\n throw new ParameterError('memberId must be defined, the associated locus url, and the moderator for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.getTransferHostToMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.url device url SIP user\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @param {String} options.memberId ID of PSTN user\n * @returns {Promise}\n */\n sendDialPadKey(options) {\n if (!options || !options.locusUrl || !options.memberId || !options.url || !options.tones && options.tones !== 0) {\n throw new ParameterError('memberId must be defined, the associated locus url, the device url and DTMF tones for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.generateSendDTMFRequestParams(options);\n\n return this.request(requestParams);\n }\n\n /**\n * @param {Object} options with format of {invitee: string, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl\n * @memberof MembersRequest\n */\n cancelPhoneInvite(options) {\n if (!(options?.invitee?.phoneNumber || options?.locusUrl)) {\n throw new ParameterError('invitee must be passed and the associated locus url for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.generateCancelInviteRequestParams(options);\n\n return this.request(requestParams);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AAEA;;;;;;AAGA;AACA;AACA;IACqBA,c;;;;;;;;;;;;;;;4FACPC,mB;;;;;;;IAEZ;AACF;AACA;AACA;AACA;AACA;AACA;IACE,oBAAWC,OAAX,EAAoB;MAClB,IAAI,EAAE,CAACA,OAAD,IAAY,CAACA,OAAO,CAACC,OAArB,IAAiC,CAACD,OAAO,CAACC,OAAR,CAAgBC,YAAjB,IAAiC,CAACF,OAAO,CAACC,OAAR,CAAgBE,KAAlD,IAA2D,CAACH,OAAO,CAACC,OAAR,CAAgBG,WAA7G,IAA6H,CAACJ,OAAO,CAACK,QAAxI,CAAJ,EAAuJ;QACrJ,MAAM,IAAIC,kBAAJ,CAAmB,8FAAnB,CAAN;MACD;;MACD,IAAMC,aAAa,GAAGC,cAAYC,yBAAZ,CAAsCT,OAAtC,CAAtB;;MAEA,OAAO,KAAKU,OAAL,CAAaH,aAAb,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAYP,OAAZ,EAAqB;MACnB,IAAI,CAACA,OAAD,IAAY,CAACA,OAAO,CAACK,QAArB,IAAiC,CAACL,OAAO,CAACW,SAA9C,EAAyD;QACvD,MAAM,IAAIL,kBAAJ,CAAmB,yGAAnB,CAAN;MACD;;MACD,IAAMC,aAAa,GAAGC,cAAYI,2BAAZ,CAAwCZ,OAAxC,CAAtB;;MAEA,OAAO,KAAKU,OAAL,CAAaH,aAAb,CAAP;IACD;;;WAED,sBAAaP,OAAb,EAAsB;MACpB,IAAI,CAACA,OAAD,IAAY,CAACA,OAAO,CAACK,QAArB,IAAiC,CAACL,OAAO,CAACa,QAA9C,EAAwD;QACtD,MAAM,IAAIP,kBAAJ,CAAmB,iGAAnB,CAAN;MACD;;MAED,IAAMC,aAAa,GAAGC,cAAYM,4BAAZ,CAAyCd,OAAzC,CAAtB;;MAEA,OAAO,KAAKU,OAAL,CAAaH,aAAb,CAAP;IACD;;;WAED,oBAAWP,OAAX,EAAoB;MAClB,IAAI,CAACA,OAAD,IAAY,CAACA,OAAO,CAACK,QAArB,IAAiC,CAACL,OAAO,CAACa,QAA9C,EAAwD;QACtD,MAAM,IAAIP,kBAAJ,CAAmB,iGAAnB,CAAN;MACD;;MAED,IAAMC,aAAa,GAAGC,cAAYO,0BAAZ,CAAuCf,OAAvC,CAAtB;;MAEA,OAAO,KAAKU,OAAL,CAAaH,aAAb,CAAP;IACD;;;WAED,8BAAqBP,OAArB,EAA8B;MAC5B,IAAI,CAACA,OAAD,IAAY,CAACA,OAAO,CAACK,QAArB,IAAiC,CAACL,OAAO,CAACa,QAA1C,IAAsD,CAACb,OAAO,
|
|
1
|
+
{"version":3,"names":["MembersRequest","MEETINGS","options","invitee","emailAddress","email","phoneNumber","locusUrl","ParameterError","requestParams","MembersUtil","getAddMemberRequestParams","request","memberIds","getAdmitMemberRequestParams","memberId","getRemoveMemberRequestParams","getMuteMemberRequestParams","getRaiseHandMemberRequestParams","moderator","getTransferHostToMemberRequestParams","url","tones","generateSendDTMFRequestParams","generateCancelInviteRequestParams","StatelessWebexPlugin"],"sources":["request.js"],"sourcesContent":["import {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {MEETINGS} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nimport MembersUtil from './util';\n\n\n/**\n * @class MembersRequest\n */\nexport default class MembersRequest extends StatelessWebexPlugin {\n namespace = MEETINGS;\n\n /**\n *\n * @param {Object} options with format of {invitee: string, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl\n * @memberof MembersRequest\n */\n addMembers(options) {\n if (!(!options || !options.invitee || (!options.invitee.emailAddress || !options.invitee.email || !options.invitee.phoneNumber) || !options.locusUrl)) {\n throw new ParameterError('invitee must be passed and the associated locus url for this meeting object must be defined.');\n }\n const requestParams = MembersUtil.getAddMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n /**\n *\n * @param {Object} options\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl\n * @memberof MembersRequest\n */\n admitMember(options) {\n if (!options || !options.locusUrl || !options.memberIds) {\n throw new ParameterError('memberIds must be an array passed and the associated locus url for this meeting object must be defined.');\n }\n const requestParams = MembersUtil.getAdmitMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n removeMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError('memberId must be defined, and the associated locus url for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.getRemoveMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n muteMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError('memberId must be defined, and the associated locus url for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.getMuteMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n raiseOrLowerHandMember(options) {\n if (!options || !options.locusUrl || !options.memberId) {\n throw new ParameterError('memberId must be defined, and the associated locus url for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.getRaiseHandMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n transferHostToMember(options) {\n if (!options || !options.locusUrl || !options.memberId || !options.moderator) {\n throw new ParameterError('memberId must be defined, the associated locus url, and the moderator for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.getTransferHostToMemberRequestParams(options);\n\n return this.request(requestParams);\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.url device url SIP user\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @param {String} options.memberId ID of PSTN user\n * @returns {Promise}\n */\n sendDialPadKey(options) {\n if (!options || !options.locusUrl || !options.memberId || !options.url || !options.tones && options.tones !== 0) {\n throw new ParameterError('memberId must be defined, the associated locus url, the device url and DTMF tones for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.generateSendDTMFRequestParams(options);\n\n return this.request(requestParams);\n }\n\n /**\n * @param {Object} options with format of {invitee: string, locusUrl: string}\n * @returns {Promise}\n * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl\n * @memberof MembersRequest\n */\n cancelPhoneInvite(options) {\n if (!(options?.invitee?.phoneNumber || options?.locusUrl)) {\n throw new ParameterError('invitee must be passed and the associated locus url for this meeting object must be defined.');\n }\n\n const requestParams = MembersUtil.generateCancelInviteRequestParams(options);\n\n return this.request(requestParams);\n }\n}\n"],"mappings":"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"}
|
package/dist/members/util.js
CHANGED
|
@@ -140,14 +140,22 @@ MembersUtil.generateRemoveMemberOptions = function (removal, locusUrl) {
|
|
|
140
140
|
};
|
|
141
141
|
};
|
|
142
142
|
|
|
143
|
-
MembersUtil.generateMuteMemberOptions = function (
|
|
143
|
+
MembersUtil.generateMuteMemberOptions = function (memberId, status, locusUrl) {
|
|
144
144
|
return {
|
|
145
|
-
memberId:
|
|
145
|
+
memberId: memberId,
|
|
146
146
|
muted: status,
|
|
147
147
|
locusUrl: locusUrl
|
|
148
148
|
};
|
|
149
149
|
};
|
|
150
150
|
|
|
151
|
+
MembersUtil.generateRaiseHandMemberOptions = function (memberId, status, locusUrl) {
|
|
152
|
+
return {
|
|
153
|
+
memberId: memberId,
|
|
154
|
+
raised: status,
|
|
155
|
+
locusUrl: locusUrl
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
|
|
151
159
|
MembersUtil.getMuteMemberRequestParams = function (options) {
|
|
152
160
|
var body = {
|
|
153
161
|
audio: {
|
|
@@ -162,6 +170,20 @@ MembersUtil.getMuteMemberRequestParams = function (options) {
|
|
|
162
170
|
};
|
|
163
171
|
};
|
|
164
172
|
|
|
173
|
+
MembersUtil.getRaiseHandMemberRequestParams = function (options) {
|
|
174
|
+
var body = {
|
|
175
|
+
hand: {
|
|
176
|
+
raised: options.raised
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
var uri = "".concat(options.locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(options.memberId, "/").concat(_constants.CONTROLS);
|
|
180
|
+
return {
|
|
181
|
+
method: _constants.HTTP_VERBS.PATCH,
|
|
182
|
+
uri: uri,
|
|
183
|
+
body: body
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
|
|
165
187
|
MembersUtil.getTransferHostToMemberRequestParams = function (options) {
|
|
166
188
|
var body = {
|
|
167
189
|
role: {
|
package/dist/members/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MembersUtil","generateAddMemberOptions","invitee","locusUrl","alertIfActive","generateAdmitMemberOptions","memberIds","getAddMemberBody","options","invitees","address","emailAddress","email","phoneNumber","getAdmitMemberRequestBody","admit","participantIds","getAdmitMemberRequestParams","format","body","uri","CONTROLS","method","HTTP_VERBS","PUT","getAddMemberRequestParams","requestParams","isInvalidInvitee","DIALER_REGEX","E164_FORMAT","test","VALID_EMAIL_ADDRESS","getRemoveMemberRequestParams","reason","PARTICIPANT","memberId","LEAVE","generateTransferHostMemberOptions","transfer","moderator","generateRemoveMemberOptions","removal","_FORCED_","generateMuteMemberOptions","mute","status","muted","getMuteMemberRequestParams","audio","PATCH","getTransferHostToMemberRequestParams","role","genderateSendDTMFOptions","url","tones","generateSendDTMFRequestParams","device","dtmf","correlationId","uuid","v4","direction","SEND_DTMF_ENDPOINT","POST","cancelPhoneInviteOptions","generateCancelInviteRequestParams","actionType","_REMOVE_"],"sources":["util.js"],"sourcesContent":["import uuid from 'uuid';\n\nimport {\n HTTP_VERBS,\n CONTROLS,\n _FORCED_,\n LEAVE,\n PARTICIPANT,\n VALID_EMAIL_ADDRESS,\n DIALER_REGEX,\n SEND_DTMF_ENDPOINT,\n _REMOVE_\n} from '../constants';\n\nconst MembersUtil = {};\n\n/**\n * @param {Object} invitee with emailAddress, email or phoneNumber\n * @param {String} locusUrl\n * @param {Boolean} alertIfActive\n * @returns {Object} the format object\n */\nMembersUtil.generateAddMemberOptions = (invitee, locusUrl, alertIfActive) => ({\n invitee,\n locusUrl,\n alertIfActive\n});\n\n/**\n * @param {Array} memberIds\n * @param {String} locusUrl\n * @returns {Object} the format object\n */\nMembersUtil.generateAdmitMemberOptions = (memberIds, locusUrl) => ({\n locusUrl,\n memberIds\n});\n\n/**\n * @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}\n * @returns {Object} with {invitees: [{address}], alertIfActive}\n */\nMembersUtil.getAddMemberBody = (options) => ({\n invitees: [\n {\n address: options.invitee.emailAddress || options.invitee.email || options.invitee.phoneNumber\n }\n ],\n alertIfActive: options.alertIfActive\n});\n\n/**\n * @param {Object} options with {memberIds}\n * @returns {Object} admit with {memberIds}\n */\nMembersUtil.getAdmitMemberRequestBody = (options) => ({\n admit: {participantIds: options.memberIds}\n});\n\n/**\n * @param {Object} format with {memberIds, locusUrl}\n * @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request\n */\nMembersUtil.getAdmitMemberRequestParams = (format) => {\n const body = MembersUtil.getAdmitMemberRequestBody(format);\n const uri = `${format.locusUrl}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body\n };\n};\n\n/**\n * @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}\n * @returns {Object} the request parameters (method, uri, body) needed to make a addMember request\n */\nMembersUtil.getAddMemberRequestParams = (format) => {\n const body = MembersUtil.getAddMemberBody(format);\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: format.locusUrl,\n body\n };\n\n return requestParams;\n};\n\nMembersUtil.isInvalidInvitee = (invitee) => {\n if (!(invitee && (invitee.email || invitee.emailAddress || invitee.phoneNumber))) {\n return true;\n }\n\n if (invitee.phoneNumber) {\n return !DIALER_REGEX.E164_FORMAT.test(invitee.phoneNumber);\n }\n\n return !VALID_EMAIL_ADDRESS.test(invitee.email || invitee.emailAddress);\n};\n\nMembersUtil.getRemoveMemberRequestParams = (options) => {\n const body = {\n reason: options.reason\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${LEAVE}`;\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body\n };\n};\n\nMembersUtil.generateTransferHostMemberOptions = (transfer, moderator, locusUrl) => ({\n moderator,\n locusUrl,\n memberId: transfer\n});\n\nMembersUtil.generateRemoveMemberOptions = (removal, locusUrl) => ({\n reason: _FORCED_,\n memberId: removal,\n locusUrl\n});\n\nMembersUtil.generateMuteMemberOptions = (mute, status, locusUrl) => ({\n memberId: mute,\n muted: status,\n locusUrl\n});\n\nMembersUtil.getMuteMemberRequestParams = (options) => {\n const body = {\n audio: {\n muted: options.muted\n }\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body\n };\n};\n\nMembersUtil.getTransferHostToMemberRequestParams = (options) => {\n const body = {\n role: {\n moderator: options.moderator\n }\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body\n };\n};\n\nMembersUtil.genderateSendDTMFOptions = (url, tones, memberId, locusUrl) => ({\n url,\n tones,\n memberId,\n locusUrl\n});\n\nMembersUtil.generateSendDTMFRequestParams = ({\n url, tones, memberId, locusUrl\n}) => {\n const body = {\n device: {\n url\n },\n memberId,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n direction: 'transmit'\n }\n };\n const uri = `${locusUrl}/${PARTICIPANT}/${memberId}/${SEND_DTMF_ENDPOINT}`;\n\n return {\n method: HTTP_VERBS.POST,\n uri,\n body\n };\n};\n\nMembersUtil.cancelPhoneInviteOptions = (invitee, locusUrl) => ({\n invitee,\n locusUrl\n});\n\nMembersUtil.generateCancelInviteRequestParams = (options) => {\n const body = {\n actionType: _REMOVE_,\n invitees: [\n {\n address: options.invitee.phoneNumber\n }\n ]\n };\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: options.locusUrl,\n body\n };\n\n return requestParams;\n};\n\nexport default MembersUtil;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MembersUtil","generateAddMemberOptions","invitee","locusUrl","alertIfActive","generateAdmitMemberOptions","memberIds","getAddMemberBody","options","invitees","address","emailAddress","email","phoneNumber","getAdmitMemberRequestBody","admit","participantIds","getAdmitMemberRequestParams","format","body","uri","CONTROLS","method","HTTP_VERBS","PUT","getAddMemberRequestParams","requestParams","isInvalidInvitee","DIALER_REGEX","E164_FORMAT","test","VALID_EMAIL_ADDRESS","getRemoveMemberRequestParams","reason","PARTICIPANT","memberId","LEAVE","generateTransferHostMemberOptions","transfer","moderator","generateRemoveMemberOptions","removal","_FORCED_","generateMuteMemberOptions","status","muted","generateRaiseHandMemberOptions","raised","getMuteMemberRequestParams","audio","PATCH","getRaiseHandMemberRequestParams","hand","getTransferHostToMemberRequestParams","role","genderateSendDTMFOptions","url","tones","generateSendDTMFRequestParams","device","dtmf","correlationId","uuid","v4","direction","SEND_DTMF_ENDPOINT","POST","cancelPhoneInviteOptions","generateCancelInviteRequestParams","actionType","_REMOVE_"],"sources":["util.js"],"sourcesContent":["import uuid from 'uuid';\n\nimport {\n HTTP_VERBS,\n CONTROLS,\n _FORCED_,\n LEAVE,\n PARTICIPANT,\n VALID_EMAIL_ADDRESS,\n DIALER_REGEX,\n SEND_DTMF_ENDPOINT,\n _REMOVE_\n} from '../constants';\n\nconst MembersUtil = {};\n\n/**\n * @param {Object} invitee with emailAddress, email or phoneNumber\n * @param {String} locusUrl\n * @param {Boolean} alertIfActive\n * @returns {Object} the format object\n */\nMembersUtil.generateAddMemberOptions = (invitee, locusUrl, alertIfActive) => ({\n invitee,\n locusUrl,\n alertIfActive\n});\n\n/**\n * @param {Array} memberIds\n * @param {String} locusUrl\n * @returns {Object} the format object\n */\nMembersUtil.generateAdmitMemberOptions = (memberIds, locusUrl) => ({\n locusUrl,\n memberIds\n});\n\n/**\n * @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}\n * @returns {Object} with {invitees: [{address}], alertIfActive}\n */\nMembersUtil.getAddMemberBody = (options) => ({\n invitees: [\n {\n address: options.invitee.emailAddress || options.invitee.email || options.invitee.phoneNumber\n }\n ],\n alertIfActive: options.alertIfActive\n});\n\n/**\n * @param {Object} options with {memberIds}\n * @returns {Object} admit with {memberIds}\n */\nMembersUtil.getAdmitMemberRequestBody = (options) => ({\n admit: {participantIds: options.memberIds}\n});\n\n/**\n * @param {Object} format with {memberIds, locusUrl}\n * @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request\n */\nMembersUtil.getAdmitMemberRequestParams = (format) => {\n const body = MembersUtil.getAdmitMemberRequestBody(format);\n const uri = `${format.locusUrl}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body\n };\n};\n\n/**\n * @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}\n * @returns {Object} the request parameters (method, uri, body) needed to make a addMember request\n */\nMembersUtil.getAddMemberRequestParams = (format) => {\n const body = MembersUtil.getAddMemberBody(format);\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: format.locusUrl,\n body\n };\n\n return requestParams;\n};\n\nMembersUtil.isInvalidInvitee = (invitee) => {\n if (!(invitee && (invitee.email || invitee.emailAddress || invitee.phoneNumber))) {\n return true;\n }\n\n if (invitee.phoneNumber) {\n return !DIALER_REGEX.E164_FORMAT.test(invitee.phoneNumber);\n }\n\n return !VALID_EMAIL_ADDRESS.test(invitee.email || invitee.emailAddress);\n};\n\nMembersUtil.getRemoveMemberRequestParams = (options) => {\n const body = {\n reason: options.reason\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${LEAVE}`;\n\n return {\n method: HTTP_VERBS.PUT,\n uri,\n body\n };\n};\n\nMembersUtil.generateTransferHostMemberOptions = (transfer, moderator, locusUrl) => ({\n moderator,\n locusUrl,\n memberId: transfer\n});\n\nMembersUtil.generateRemoveMemberOptions = (removal, locusUrl) => ({\n reason: _FORCED_,\n memberId: removal,\n locusUrl\n});\n\nMembersUtil.generateMuteMemberOptions = (memberId, status, locusUrl) => ({\n memberId,\n muted: status,\n locusUrl\n});\n\nMembersUtil.generateRaiseHandMemberOptions = (memberId, status, locusUrl) => ({\n memberId,\n raised: status,\n locusUrl\n});\n\nMembersUtil.getMuteMemberRequestParams = (options) => {\n const body = {\n audio: {\n muted: options.muted\n }\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body\n };\n};\n\nMembersUtil.getRaiseHandMemberRequestParams = (options) => {\n const body = {\n hand: {\n raised: options.raised\n }\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body\n };\n};\n\nMembersUtil.getTransferHostToMemberRequestParams = (options) => {\n const body = {\n role: {\n moderator: options.moderator\n }\n };\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;\n\n return {\n method: HTTP_VERBS.PATCH,\n uri,\n body\n };\n};\n\nMembersUtil.genderateSendDTMFOptions = (url, tones, memberId, locusUrl) => ({\n url,\n tones,\n memberId,\n locusUrl\n});\n\nMembersUtil.generateSendDTMFRequestParams = ({\n url, tones, memberId, locusUrl\n}) => {\n const body = {\n device: {\n url\n },\n memberId,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n direction: 'transmit'\n }\n };\n const uri = `${locusUrl}/${PARTICIPANT}/${memberId}/${SEND_DTMF_ENDPOINT}`;\n\n return {\n method: HTTP_VERBS.POST,\n uri,\n body\n };\n};\n\nMembersUtil.cancelPhoneInviteOptions = (invitee, locusUrl) => ({\n invitee,\n locusUrl\n});\n\nMembersUtil.generateCancelInviteRequestParams = (options) => {\n const body = {\n actionType: _REMOVE_,\n invitees: [\n {\n address: options.invitee.phoneNumber\n }\n ]\n };\n const requestParams = {\n method: HTTP_VERBS.PUT,\n uri: options.locusUrl,\n body\n };\n\n return requestParams;\n};\n\nexport default MembersUtil;\n"],"mappings":"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"}
|
|
@@ -50,7 +50,14 @@ var BEHAVIORAL_METRICS = {
|
|
|
50
50
|
ENABLE_BNR_SUCCESS: 'js_sdk_enable_bnr_success',
|
|
51
51
|
ENABLE_BNR_FAILURE: 'js_sdk_enable_bnr_failure',
|
|
52
52
|
DISABLE_BNR_SUCCESS: 'js_sdk_disable_bnr_success',
|
|
53
|
-
DISABLE_BNR_FAILURE: 'js_sdk_disable_bnr_failure'
|
|
53
|
+
DISABLE_BNR_FAILURE: 'js_sdk_disable_bnr_failure',
|
|
54
|
+
FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',
|
|
55
|
+
FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',
|
|
56
|
+
ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',
|
|
57
|
+
ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',
|
|
58
|
+
VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',
|
|
59
|
+
VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',
|
|
60
|
+
VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error'
|
|
54
61
|
};
|
|
55
62
|
exports.default = BEHAVIORAL_METRICS;
|
|
56
63
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BEHAVIORAL_METRICS","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","RECEIVE_TRANSCRIPTION_FAILURE","ENABLE_BNR_SUCCESS","ENABLE_BNR_FAILURE","DISABLE_BNR_SUCCESS","DISABLE_BNR_FAILURE"],"sources":["constants.js"],"sourcesContent":["\n// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n ENABLE_BNR_SUCCESS: 'js_sdk_enable_bnr_success',\n ENABLE_BNR_FAILURE: 'js_sdk_enable_bnr_failure',\n DISABLE_BNR_SUCCESS: 'js_sdk_disable_bnr_success',\n DISABLE_BNR_FAILURE: 'js_sdk_disable_bnr_failure'\n};\n\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":";;;;;;;;;AACA;AAEA,IAAMA,kBAAkB,GAAG;EACzBC,4BAA4B,EAAE,qCADL;EAEzBC,6BAA6B,EAAE,sCAFN;EAGzBC,0BAA0B,EAAE,mCAHH;EAIzBC,2BAA2B,EAAE,oCAJJ;EAKzBC,YAAY,EAAE,qBALW;EAMzBC,YAAY,EAAE,sBANW;EAOzBC,iBAAiB,EAAE,0BAPM;EAQzBC,iBAAiB,EAAE,2BARM;EASzBC,kBAAkB,EAAE,2BATK;EAUzBC,kBAAkB,EAAE,4BAVK;EAWzBC,qBAAqB,EAAE,8BAXE;EAYzBC,uBAAuB,EAAE,oCAZA;EAazBC,yBAAyB,EAAE,sCAbF;EAczBC,sBAAsB,EAAE,gCAdC;EAezBC,yBAAyB,EAAE,mCAfF;EAgBzBC,uBAAuB,EAAE,iCAhBA;EAkBzBC,4BAA4B,EAAE,qCAlBL;EAmBzBC,sBAAsB,EAAE,+BAnBC;EAoBzBC,yBAAyB,EAAE,mCApBF;EAqBzBC,0BAA0B,EAAE,mCArBH;EAsBzBC,qBAAqB,EAAE,+BAtBE;EAuBzBC,sCAAsC,EAAE,gDAvBf;EAwBzBC,qCAAqC,EAAE,+CAxBd;EAyBzBC,kBAAkB,EAAE,4BAzBK;EA0BzBC,kBAAkB,EAAE,4BA1BK;EA2BzBC,2BAA2B,EAAE,qCA3BJ;EA4BzBC,0BAA0B,EAAE,oCA5BH;EA6BzBC,mBAAmB,EAAE,4BA7BI;EA8BzBC,oBAAoB,EAAE,6BA9BG;EA+BzBC,oBAAoB,EAAE,8BA/BG;EAgCzBC,oBAAoB,EAAE,8BAhCG;EAiCzBC,oBAAoB,EAAE,8BAjCG;EAkCzBC,mBAAmB,EAAE,6BAlCI;EAmCzBC,oBAAoB,EAAE,4BAnCG;EAoCzBC,sBAAsB,EAAE,gCApCC;EAqCzBC,qBAAqB,EAAE,8BArCE;EAsCzBC,mBAAmB,EAAE,4BAtCI;EAuCzBC,6BAA6B,EAAE,sCAvCN;EAwCzBC,kBAAkB,EAAE,2BAxCK;EAyCzBC,kBAAkB,EAAE,2BAzCK;EA0CzBC,mBAAmB,EAAE,4BA1CI;EA2CzBC,mBAAmB,EAAE;
|
|
1
|
+
{"version":3,"names":["BEHAVIORAL_METRICS","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","RECEIVE_TRANSCRIPTION_FAILURE","ENABLE_BNR_SUCCESS","ENABLE_BNR_FAILURE","DISABLE_BNR_SUCCESS","DISABLE_BNR_FAILURE","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR"],"sources":["constants.js"],"sourcesContent":["\n// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n ENABLE_BNR_SUCCESS: 'js_sdk_enable_bnr_success',\n ENABLE_BNR_FAILURE: 'js_sdk_enable_bnr_failure',\n DISABLE_BNR_SUCCESS: 'js_sdk_disable_bnr_success',\n DISABLE_BNR_FAILURE: 'js_sdk_disable_bnr_failure',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error'\n};\n\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":";;;;;;;;;AACA;AAEA,IAAMA,kBAAkB,GAAG;EACzBC,4BAA4B,EAAE,qCADL;EAEzBC,6BAA6B,EAAE,sCAFN;EAGzBC,0BAA0B,EAAE,mCAHH;EAIzBC,2BAA2B,EAAE,oCAJJ;EAKzBC,YAAY,EAAE,qBALW;EAMzBC,YAAY,EAAE,sBANW;EAOzBC,iBAAiB,EAAE,0BAPM;EAQzBC,iBAAiB,EAAE,2BARM;EASzBC,kBAAkB,EAAE,2BATK;EAUzBC,kBAAkB,EAAE,4BAVK;EAWzBC,qBAAqB,EAAE,8BAXE;EAYzBC,uBAAuB,EAAE,oCAZA;EAazBC,yBAAyB,EAAE,sCAbF;EAczBC,sBAAsB,EAAE,gCAdC;EAezBC,yBAAyB,EAAE,mCAfF;EAgBzBC,uBAAuB,EAAE,iCAhBA;EAkBzBC,4BAA4B,EAAE,qCAlBL;EAmBzBC,sBAAsB,EAAE,+BAnBC;EAoBzBC,yBAAyB,EAAE,mCApBF;EAqBzBC,0BAA0B,EAAE,mCArBH;EAsBzBC,qBAAqB,EAAE,+BAtBE;EAuBzBC,sCAAsC,EAAE,gDAvBf;EAwBzBC,qCAAqC,EAAE,+CAxBd;EAyBzBC,kBAAkB,EAAE,4BAzBK;EA0BzBC,kBAAkB,EAAE,4BA1BK;EA2BzBC,2BAA2B,EAAE,qCA3BJ;EA4BzBC,0BAA0B,EAAE,oCA5BH;EA6BzBC,mBAAmB,EAAE,4BA7BI;EA8BzBC,oBAAoB,EAAE,6BA9BG;EA+BzBC,oBAAoB,EAAE,8BA/BG;EAgCzBC,oBAAoB,EAAE,8BAhCG;EAiCzBC,oBAAoB,EAAE,8BAjCG;EAkCzBC,mBAAmB,EAAE,6BAlCI;EAmCzBC,oBAAoB,EAAE,4BAnCG;EAoCzBC,sBAAsB,EAAE,gCApCC;EAqCzBC,qBAAqB,EAAE,8BArCE;EAsCzBC,mBAAmB,EAAE,4BAtCI;EAuCzBC,6BAA6B,EAAE,sCAvCN;EAwCzBC,kBAAkB,EAAE,2BAxCK;EAyCzBC,kBAAkB,EAAE,2BAzCK;EA0CzBC,mBAAmB,EAAE,4BA1CI;EA2CzBC,mBAAmB,EAAE,4BA3CI;EA4CzBC,6BAA6B,EAAE,sCA5CN;EA6CzBC,6BAA6B,EAAE,sCA7CN;EA8CzBC,qBAAqB,EAAE,8BA9CE;EA+CzBC,qBAAqB,EAAE,8BA/CE;EAgDzBC,uBAAuB,EAAE,gCAhDA;EAiDzBC,qBAAqB,EAAE,8BAjDE;EAkDzBC,oBAAoB,EAAE;AAlDG,CAA3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/plugin-meetings",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"contributors": [
|
|
@@ -24,19 +24,19 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@babel/runtime-corejs2": "^7.14.8",
|
|
27
|
-
"@webex/webex-core": "2.
|
|
28
|
-
"@webex/internal-plugin-mercury": "2.
|
|
29
|
-
"@webex/internal-plugin-conversation": "2.
|
|
27
|
+
"@webex/webex-core": "2.11.0",
|
|
28
|
+
"@webex/internal-plugin-mercury": "2.11.0",
|
|
29
|
+
"@webex/internal-plugin-conversation": "2.11.0",
|
|
30
30
|
"webrtc-adapter": "^7.7.0",
|
|
31
31
|
"lodash": "^4.17.21",
|
|
32
32
|
"uuid": "^3.3.2",
|
|
33
33
|
"global": "^4.4.0",
|
|
34
34
|
"ip-anonymize": "^0.1.0",
|
|
35
|
-
"@webex/common": "2.
|
|
35
|
+
"@webex/common": "2.11.0",
|
|
36
36
|
"bowser": "^2.11.0",
|
|
37
37
|
"sdp-transform": "^2.12.0",
|
|
38
38
|
"readable-stream": "^3.6.0",
|
|
39
|
-
"@webex/common-timers": "2.
|
|
39
|
+
"@webex/common-timers": "2.11.0",
|
|
40
40
|
"btoa": "^1.2.1",
|
|
41
41
|
"@webex/internal-media-core": "^0.0.4-beta",
|
|
42
42
|
"javascript-state-machine": "^3.1.0",
|
package/src/meeting/index.js
CHANGED
|
@@ -1023,7 +1023,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1023
1023
|
return this.fetchMeetingInfo({
|
|
1024
1024
|
password, captchaCode
|
|
1025
1025
|
})
|
|
1026
|
-
.then(() =>
|
|
1026
|
+
.then(() => {
|
|
1027
|
+
Metrics.sendBehavioralMetric(
|
|
1028
|
+
BEHAVIORAL_METRICS.VERIFY_PASSWORD_SUCCESS
|
|
1029
|
+
);
|
|
1030
|
+
|
|
1031
|
+
return {isPasswordValid: true, requiredCaptcha: null, failureReason: MEETING_INFO_FAILURE_REASON.NONE};
|
|
1032
|
+
})
|
|
1027
1033
|
.catch((error) => {
|
|
1028
1034
|
if (error instanceof PasswordError || error instanceof CaptchaError) {
|
|
1029
1035
|
return {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import {HTTP_VERBS, _CONVERSATION_URL_} from '../constants';
|
|
3
|
+
import Metrics from '../metrics';
|
|
4
|
+
import BEHAVIORAL_METRICS from '../metrics/constants';
|
|
3
5
|
|
|
4
6
|
import MeetingInfoUtil from './utilv2';
|
|
5
7
|
|
|
@@ -141,6 +143,10 @@ export default class MeetingInfoV2 {
|
|
|
141
143
|
const uri = this.webex.meetings.preferredWebexSite ?
|
|
142
144
|
`https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant` : '';
|
|
143
145
|
|
|
146
|
+
Metrics.sendBehavioralMetric(
|
|
147
|
+
BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS
|
|
148
|
+
);
|
|
149
|
+
|
|
144
150
|
return this.webex.request({
|
|
145
151
|
method: HTTP_VERBS.POST,
|
|
146
152
|
uri,
|
|
@@ -149,6 +155,16 @@ export default class MeetingInfoV2 {
|
|
|
149
155
|
.catch((err) => {
|
|
150
156
|
throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);
|
|
151
157
|
});
|
|
158
|
+
})
|
|
159
|
+
.catch((err) => {
|
|
160
|
+
Metrics.sendBehavioralMetric(
|
|
161
|
+
BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE,
|
|
162
|
+
{
|
|
163
|
+
reason: err.message,
|
|
164
|
+
stack: err.stack
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);
|
|
152
168
|
});
|
|
153
169
|
}
|
|
154
170
|
|
|
@@ -189,11 +205,32 @@ export default class MeetingInfoV2 {
|
|
|
189
205
|
if (directURI) options.directURI = directURI;
|
|
190
206
|
|
|
191
207
|
return this.webex.request(options)
|
|
208
|
+
.then(() => {
|
|
209
|
+
Metrics.sendBehavioralMetric(
|
|
210
|
+
BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS
|
|
211
|
+
);
|
|
212
|
+
})
|
|
192
213
|
.catch((err) => {
|
|
193
214
|
if (err?.statusCode === 403) {
|
|
215
|
+
Metrics.sendBehavioralMetric(
|
|
216
|
+
BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR,
|
|
217
|
+
{
|
|
218
|
+
reason: err.message,
|
|
219
|
+
stack: err.stack
|
|
220
|
+
}
|
|
221
|
+
);
|
|
222
|
+
|
|
194
223
|
throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);
|
|
195
224
|
}
|
|
196
225
|
if (err?.statusCode === 423) {
|
|
226
|
+
Metrics.sendBehavioralMetric(
|
|
227
|
+
BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR,
|
|
228
|
+
{
|
|
229
|
+
reason: err.message,
|
|
230
|
+
stack: err.stack
|
|
231
|
+
}
|
|
232
|
+
);
|
|
233
|
+
|
|
197
234
|
throw new MeetingInfoV2CaptchaError(err.body?.code, {
|
|
198
235
|
captchaId: err.body.captchaID,
|
|
199
236
|
verificationImageURL: err.body.verificationImageURL,
|
|
@@ -201,6 +238,14 @@ export default class MeetingInfoV2 {
|
|
|
201
238
|
refreshURL: err.body.refreshURL
|
|
202
239
|
});
|
|
203
240
|
}
|
|
241
|
+
|
|
242
|
+
Metrics.sendBehavioralMetric(
|
|
243
|
+
BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE,
|
|
244
|
+
{
|
|
245
|
+
reason: err.message,
|
|
246
|
+
stack: err.stack
|
|
247
|
+
}
|
|
248
|
+
);
|
|
204
249
|
throw err;
|
|
205
250
|
});
|
|
206
251
|
}
|
package/src/member/index.js
CHANGED
|
@@ -71,6 +71,13 @@ export default class Member {
|
|
|
71
71
|
* @public
|
|
72
72
|
* @memberof Member
|
|
73
73
|
*/
|
|
74
|
+
this.isHandRaised = null;
|
|
75
|
+
/**
|
|
76
|
+
* @instance
|
|
77
|
+
* @type {Boolean}
|
|
78
|
+
* @public
|
|
79
|
+
* @memberof Member
|
|
80
|
+
*/
|
|
74
81
|
this.isSelf = null;
|
|
75
82
|
/**
|
|
76
83
|
* @instance
|
|
@@ -206,6 +213,7 @@ export default class Member {
|
|
|
206
213
|
this.name = MemberUtil.extractName(participant);
|
|
207
214
|
this.isAudioMuted = MemberUtil.isAudioMuted(participant);
|
|
208
215
|
this.isVideoMuted = MemberUtil.isVideoMuted(participant);
|
|
216
|
+
this.isHandRaised = MemberUtil.isHandRaised(participant);
|
|
209
217
|
this.isGuest = MemberUtil.isGuest(participant);
|
|
210
218
|
this.isUser = MemberUtil.isUser(participant);
|
|
211
219
|
this.isDevice = MemberUtil.isDevice(participant);
|
package/src/member/util.js
CHANGED
|
@@ -107,6 +107,18 @@ MemberUtil.isVideoMuted = (participant) => {
|
|
|
107
107
|
return MemberUtil.isMuted(participant.status, VIDEO_STATUS);
|
|
108
108
|
};
|
|
109
109
|
|
|
110
|
+
/**
|
|
111
|
+
* @param {Object} participant the locus participant
|
|
112
|
+
* @returns {Boolean}
|
|
113
|
+
*/
|
|
114
|
+
MemberUtil.isHandRaised = (participant) => {
|
|
115
|
+
if (!participant) {
|
|
116
|
+
throw new ParameterError('Raise hand could not be processed, participant is undefined.');
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return participant.controls?.hand?.raised || false;
|
|
120
|
+
};
|
|
121
|
+
|
|
110
122
|
/**
|
|
111
123
|
* utility method for audio/video muted status
|
|
112
124
|
* @param {String} status
|
package/src/members/index.js
CHANGED
|
@@ -739,6 +739,26 @@ export default class Members extends StatelessWebexPlugin {
|
|
|
739
739
|
return this.membersRequest.muteMember(options);
|
|
740
740
|
}
|
|
741
741
|
|
|
742
|
+
/**
|
|
743
|
+
* Raise or lower the hand of a member in a meeting
|
|
744
|
+
* @param {String} memberId
|
|
745
|
+
* @param {boolean} [raise] - to raise hand (=true) or lower (=false), default: true
|
|
746
|
+
* @returns {Promise}
|
|
747
|
+
* @public
|
|
748
|
+
* @memberof Members
|
|
749
|
+
*/
|
|
750
|
+
raiseOrLowerHand(memberId, raise = true) {
|
|
751
|
+
if (!this.locusUrl) {
|
|
752
|
+
return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
|
|
753
|
+
}
|
|
754
|
+
if (!memberId) {
|
|
755
|
+
return Promise.reject(new ParameterError('The member id must be defined to raise/lower the hand of the member.'));
|
|
756
|
+
}
|
|
757
|
+
const options = MembersUtil.generateRaiseHandMemberOptions(memberId, raise, this.locusUrl);
|
|
758
|
+
|
|
759
|
+
return this.membersRequest.raiseLowerHandMember(options);
|
|
760
|
+
}
|
|
761
|
+
|
|
742
762
|
/**
|
|
743
763
|
* Transfers the host to another member
|
|
744
764
|
* @param {String} memberId
|
package/src/members/request.js
CHANGED
|
@@ -64,6 +64,16 @@ export default class MembersRequest extends StatelessWebexPlugin {
|
|
|
64
64
|
return this.request(requestParams);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
raiseOrLowerHandMember(options) {
|
|
68
|
+
if (!options || !options.locusUrl || !options.memberId) {
|
|
69
|
+
throw new ParameterError('memberId must be defined, and the associated locus url for this meeting object must be defined.');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const requestParams = MembersUtil.getRaiseHandMemberRequestParams(options);
|
|
73
|
+
|
|
74
|
+
return this.request(requestParams);
|
|
75
|
+
}
|
|
76
|
+
|
|
67
77
|
transferHostToMember(options) {
|
|
68
78
|
if (!options || !options.locusUrl || !options.memberId || !options.moderator) {
|
|
69
79
|
throw new ParameterError('memberId must be defined, the associated locus url, and the moderator for this meeting object must be defined.');
|
package/src/members/util.js
CHANGED
|
@@ -124,12 +124,18 @@ MembersUtil.generateRemoveMemberOptions = (removal, locusUrl) => ({
|
|
|
124
124
|
locusUrl
|
|
125
125
|
});
|
|
126
126
|
|
|
127
|
-
MembersUtil.generateMuteMemberOptions = (
|
|
128
|
-
memberId
|
|
127
|
+
MembersUtil.generateMuteMemberOptions = (memberId, status, locusUrl) => ({
|
|
128
|
+
memberId,
|
|
129
129
|
muted: status,
|
|
130
130
|
locusUrl
|
|
131
131
|
});
|
|
132
132
|
|
|
133
|
+
MembersUtil.generateRaiseHandMemberOptions = (memberId, status, locusUrl) => ({
|
|
134
|
+
memberId,
|
|
135
|
+
raised: status,
|
|
136
|
+
locusUrl
|
|
137
|
+
});
|
|
138
|
+
|
|
133
139
|
MembersUtil.getMuteMemberRequestParams = (options) => {
|
|
134
140
|
const body = {
|
|
135
141
|
audio: {
|
|
@@ -145,6 +151,21 @@ MembersUtil.getMuteMemberRequestParams = (options) => {
|
|
|
145
151
|
};
|
|
146
152
|
};
|
|
147
153
|
|
|
154
|
+
MembersUtil.getRaiseHandMemberRequestParams = (options) => {
|
|
155
|
+
const body = {
|
|
156
|
+
hand: {
|
|
157
|
+
raised: options.raised
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;
|
|
161
|
+
|
|
162
|
+
return {
|
|
163
|
+
method: HTTP_VERBS.PATCH,
|
|
164
|
+
uri,
|
|
165
|
+
body
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
|
|
148
169
|
MembersUtil.getTransferHostToMemberRequestParams = (options) => {
|
|
149
170
|
const body = {
|
|
150
171
|
role: {
|
package/src/metrics/constants.js
CHANGED
|
@@ -44,7 +44,14 @@ const BEHAVIORAL_METRICS = {
|
|
|
44
44
|
ENABLE_BNR_SUCCESS: 'js_sdk_enable_bnr_success',
|
|
45
45
|
ENABLE_BNR_FAILURE: 'js_sdk_enable_bnr_failure',
|
|
46
46
|
DISABLE_BNR_SUCCESS: 'js_sdk_disable_bnr_success',
|
|
47
|
-
DISABLE_BNR_FAILURE: 'js_sdk_disable_bnr_failure'
|
|
47
|
+
DISABLE_BNR_FAILURE: 'js_sdk_disable_bnr_failure',
|
|
48
|
+
FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',
|
|
49
|
+
FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',
|
|
50
|
+
ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',
|
|
51
|
+
ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',
|
|
52
|
+
VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',
|
|
53
|
+
VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',
|
|
54
|
+
VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error'
|
|
48
55
|
};
|
|
49
56
|
|
|
50
57
|
|
|
@@ -2366,6 +2366,11 @@ describe('plugin-meetings', () => {
|
|
|
2366
2366
|
assert.equal(meeting.requiredCaptcha, null);
|
|
2367
2367
|
assert.calledTwice(TriggerProxy.trigger);
|
|
2368
2368
|
assert.calledWith(TriggerProxy.trigger, meeting, {file: 'meetings', function: 'fetchMeetingInfo'}, 'meeting:meetingInfoAvailable');
|
|
2369
|
+
assert(Metrics.sendBehavioralMetric.calledOnce);
|
|
2370
|
+
assert.calledWith(
|
|
2371
|
+
Metrics.sendBehavioralMetric,
|
|
2372
|
+
BEHAVIORAL_METRICS.VERIFY_PASSWORD_SUCCESS,
|
|
2373
|
+
);
|
|
2369
2374
|
});
|
|
2370
2375
|
|
|
2371
2376
|
it('calls meetingInfoProvider with all the right parameters and parses the result when random delay is applied', async () => {
|
|
@@ -2437,6 +2442,11 @@ describe('plugin-meetings', () => {
|
|
|
2437
2442
|
|
|
2438
2443
|
assert.calledWith(meeting.attrs.meetingInfoProvider.fetchMeetingInfo, FAKE_DESTINATION, FAKE_TYPE, null, null);
|
|
2439
2444
|
|
|
2445
|
+
assert(Metrics.sendBehavioralMetric.calledOnce);
|
|
2446
|
+
assert.calledWith(
|
|
2447
|
+
Metrics.sendBehavioralMetric,
|
|
2448
|
+
BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR,
|
|
2449
|
+
);
|
|
2440
2450
|
assert.deepEqual(meeting.meetingInfo, FAKE_MEETING_INFO);
|
|
2441
2451
|
assert.equal(meeting.meetingInfoFailureReason, MEETING_INFO_FAILURE_REASON.WRONG_PASSWORD);
|
|
2442
2452
|
assert.equal(meeting.requiredCaptcha, null);
|
|
@@ -2457,6 +2467,11 @@ describe('plugin-meetings', () => {
|
|
|
2457
2467
|
|
|
2458
2468
|
assert.calledWith(meeting.attrs.meetingInfoProvider.fetchMeetingInfo, FAKE_DESTINATION, FAKE_TYPE, 'aaa', null);
|
|
2459
2469
|
|
|
2470
|
+
assert(Metrics.sendBehavioralMetric.calledOnce);
|
|
2471
|
+
assert.calledWith(
|
|
2472
|
+
Metrics.sendBehavioralMetric,
|
|
2473
|
+
BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR,
|
|
2474
|
+
);
|
|
2460
2475
|
assert.deepEqual(meeting.meetingInfo, {});
|
|
2461
2476
|
assert.equal(meeting.meetingInfoFailureReason, MEETING_INFO_FAILURE_REASON.WRONG_PASSWORD);
|
|
2462
2477
|
assert.equal(meeting.passwordStatus, PASSWORD_STATUS.REQUIRED);
|
|
@@ -16,6 +16,8 @@ import {
|
|
|
16
16
|
} from '@webex/plugin-meetings/src/constants';
|
|
17
17
|
import MeetingInfo, {MeetingInfoV2PasswordError, MeetingInfoV2CaptchaError, MeetingInfoV2AdhocMeetingError} from '@webex/plugin-meetings/src/meeting-info/meeting-info-v2';
|
|
18
18
|
import MeetingInfoUtil from '@webex/plugin-meetings/src/meeting-info/utilv2';
|
|
19
|
+
import Metrics from '@webex/plugin-meetings/src/metrics';
|
|
20
|
+
import BEHAVIORAL_METRICS from '@webex/plugin-meetings/src/metrics/constants';
|
|
19
21
|
|
|
20
22
|
describe('plugin-meetings', () => {
|
|
21
23
|
const conversation = {
|
|
@@ -42,6 +44,13 @@ describe('plugin-meetings', () => {
|
|
|
42
44
|
let webex;
|
|
43
45
|
let meetingInfo = null;
|
|
44
46
|
|
|
47
|
+
beforeEach(() => {
|
|
48
|
+
sinon.stub(Metrics, 'sendBehavioralMetric');
|
|
49
|
+
});
|
|
50
|
+
afterEach(() => {
|
|
51
|
+
sinon.restore();
|
|
52
|
+
});
|
|
53
|
+
|
|
45
54
|
describe('Meeting Info V2', () => {
|
|
46
55
|
beforeEach(() => {
|
|
47
56
|
webex = new MockWebex({
|
|
@@ -125,6 +134,11 @@ describe('plugin-meetings', () => {
|
|
|
125
134
|
captchaVerifyCode: 'aabbcc11'
|
|
126
135
|
}
|
|
127
136
|
});
|
|
137
|
+
assert(Metrics.sendBehavioralMetric.calledOnce);
|
|
138
|
+
assert.calledWith(
|
|
139
|
+
Metrics.sendBehavioralMetric,
|
|
140
|
+
BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS,
|
|
141
|
+
);
|
|
128
142
|
});
|
|
129
143
|
|
|
130
144
|
it('create adhoc meeting when conversationUrl passed with enableAdhocMeetings toggle', async () => {
|
|
@@ -254,6 +268,11 @@ describe('plugin-meetings', () => {
|
|
|
254
268
|
invitees: invitee
|
|
255
269
|
}
|
|
256
270
|
});
|
|
271
|
+
assert(Metrics.sendBehavioralMetric.calledOnce);
|
|
272
|
+
assert.calledWith(
|
|
273
|
+
Metrics.sendBehavioralMetric,
|
|
274
|
+
BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS,
|
|
275
|
+
);
|
|
257
276
|
});
|
|
258
277
|
});
|
|
259
278
|
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import sinon from 'sinon';
|
|
2
|
+
import {assert} from '@webex/test-helper-chai';
|
|
3
|
+
|
|
4
|
+
import MemberUtil from '@webex/plugin-meetings/src/member/util';
|
|
5
|
+
import Member from '@webex/plugin-meetings/src/member';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
describe('member', () => {
|
|
9
|
+
afterEach(() => {
|
|
10
|
+
sinon.restore();
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('checks that processParticipant calls isHandRaised', () => {
|
|
14
|
+
const participant = {controls: {}};
|
|
15
|
+
|
|
16
|
+
const member = new Member({});
|
|
17
|
+
|
|
18
|
+
sinon.spy(MemberUtil, 'isHandRaised');
|
|
19
|
+
member.processParticipant(participant);
|
|
20
|
+
|
|
21
|
+
assert.calledOnceWithExactly(MemberUtil.isHandRaised, participant);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {assert} from '@webex/test-helper-chai';
|
|
2
|
+
|
|
3
|
+
import MemberUtil from '@webex/plugin-meetings/src/member/util';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
describe('isHandRaised', () => {
|
|
7
|
+
it('throws error when there is no participant', () => {
|
|
8
|
+
assert.throws(() => {
|
|
9
|
+
MemberUtil.isHandRaised();
|
|
10
|
+
}, 'Raise hand could not be processed, participant is undefined.');
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('returns false when controls is not there', () => {
|
|
14
|
+
const participant = {};
|
|
15
|
+
|
|
16
|
+
assert.isFalse(MemberUtil.isHandRaised(participant));
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('returns false when hand is not there in controls', () => {
|
|
20
|
+
const participant = {
|
|
21
|
+
controls: {}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
assert.isFalse(MemberUtil.isHandRaised(participant));
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('returns true when hand raised is true', () => {
|
|
28
|
+
const participant = {
|
|
29
|
+
controls: {
|
|
30
|
+
hand: {
|
|
31
|
+
raised: true
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
assert.isTrue(MemberUtil.isHandRaised(participant));
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('returns false when hand raised is false', () => {
|
|
40
|
+
const participant = {
|
|
41
|
+
controls: {
|
|
42
|
+
hand: {
|
|
43
|
+
raised: false
|
|
44
|
+
},
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
assert.isFalse(MemberUtil.isHandRaised(participant));
|
|
49
|
+
});
|
|
50
|
+
});
|