@webex/plugin-meetings 3.3.1 → 3.4.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/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +7 -2
- package/dist/breakouts/index.js.map +1 -1
- package/dist/constants.js +11 -4
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/selfUtils.js +0 -5
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +70 -15
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/index.js +12 -0
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/connectionStateHandler.js +67 -0
- package/dist/meeting/connectionStateHandler.js.map +1 -0
- package/dist/meeting/index.js +552 -357
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +7 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +6 -1
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/util.js +1 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +4 -4
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +2 -2
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +17 -17
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +16 -16
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +1 -1
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +37 -33
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +8 -0
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/util.js +3 -2
- package/dist/meetings/util.js.map +1 -1
- package/dist/metrics/constants.js +2 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +57 -0
- package/dist/metrics/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +1 -1
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/reachability/clusterReachability.js +108 -53
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +415 -56
- package/dist/reachability/index.js.map +1 -1
- package/dist/types/constants.d.ts +11 -3
- package/dist/types/media/MediaConnectionAwaiter.d.ts +24 -4
- package/dist/types/meeting/connectionStateHandler.d.ts +30 -0
- package/dist/types/meeting/index.d.ts +27 -7
- package/dist/types/meeting/locusMediaRequest.d.ts +2 -0
- package/dist/types/meeting-info/index.d.ts +3 -2
- package/dist/types/meeting-info/meeting-info-v2.d.ts +3 -2
- package/dist/types/meeting-info/util.d.ts +5 -4
- package/dist/types/meeting-info/utilv2.d.ts +3 -2
- package/dist/types/meetings/collection.d.ts +3 -2
- package/dist/types/meetings/index.d.ts +4 -3
- package/dist/types/meetings/meetings.types.d.ts +9 -0
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/metrics/index.d.ts +15 -0
- package/dist/types/reachability/clusterReachability.d.ts +31 -3
- package/dist/types/reachability/index.d.ts +93 -2
- package/dist/webinar/index.js +1 -1
- package/package.json +23 -23
- package/src/breakouts/index.ts +7 -1
- package/src/constants.ts +13 -17
- package/src/locus-info/selfUtils.ts +0 -5
- package/src/media/MediaConnectionAwaiter.ts +89 -14
- package/src/media/index.ts +13 -0
- package/src/meeting/connectionStateHandler.ts +65 -0
- package/src/meeting/index.ts +526 -292
- package/src/meeting/locusMediaRequest.ts +5 -0
- package/src/meeting/muteState.ts +6 -1
- package/src/meeting/util.ts +1 -0
- package/src/meeting-info/index.ts +9 -6
- package/src/meeting-info/meeting-info-v2.ts +4 -4
- package/src/meeting-info/util.ts +23 -28
- package/src/meeting-info/utilv2.ts +18 -24
- package/src/meetings/collection.ts +3 -3
- package/src/meetings/index.ts +39 -40
- package/src/meetings/meetings.types.ts +11 -0
- package/src/meetings/util.ts +5 -4
- package/src/metrics/constants.ts +1 -0
- package/src/metrics/index.ts +44 -0
- package/src/personal-meeting-room/index.ts +2 -2
- package/src/reachability/clusterReachability.ts +86 -25
- package/src/reachability/index.ts +316 -27
- package/test/unit/spec/breakouts/index.ts +51 -32
- package/test/unit/spec/locus-info/selfUtils.js +25 -23
- package/test/unit/spec/media/MediaConnectionAwaiter.ts +131 -32
- package/test/unit/spec/media/index.ts +42 -27
- package/test/unit/spec/meeting/connectionStateHandler.ts +102 -0
- package/test/unit/spec/meeting/index.js +758 -179
- package/test/unit/spec/meeting/locusMediaRequest.ts +7 -0
- package/test/unit/spec/meeting/muteState.js +24 -0
- package/test/unit/spec/meeting-info/index.js +4 -4
- package/test/unit/spec/meeting-info/meetinginfov2.js +24 -28
- package/test/unit/spec/meeting-info/request.js +2 -2
- package/test/unit/spec/meeting-info/utilv2.js +41 -49
- package/test/unit/spec/meetings/index.js +14 -0
- package/test/unit/spec/metrics/index.js +126 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +2 -2
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -2
- package/test/unit/spec/reachability/clusterReachability.ts +116 -22
- package/test/unit/spec/reachability/index.ts +1153 -84
- package/test/unit/spec/rtcMetrics/index.ts +1 -0
- package/dist/mediaQualityMetrics/config.js +0 -321
- package/dist/mediaQualityMetrics/config.js.map +0 -1
- package/dist/statsAnalyzer/global.js +0 -44
- package/dist/statsAnalyzer/global.js.map +0 -1
- package/dist/statsAnalyzer/index.js +0 -1072
- package/dist/statsAnalyzer/index.js.map +0 -1
- package/dist/statsAnalyzer/mqaUtil.js +0 -368
- package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -247
- package/dist/types/statsAnalyzer/global.d.ts +0 -36
- package/dist/types/statsAnalyzer/index.d.ts +0 -217
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/src/mediaQualityMetrics/config.ts +0 -255
- package/src/statsAnalyzer/global.ts +0 -37
- package/src/statsAnalyzer/index.ts +0 -1318
- package/src/statsAnalyzer/mqaUtil.ts +0 -463
- package/test/unit/spec/stats-analyzer/index.js +0 -1819
|
@@ -175,7 +175,7 @@ var MeetingInfo = exports.default = /*#__PURE__*/function () {
|
|
|
175
175
|
/**
|
|
176
176
|
* Fetches meeting info from the server
|
|
177
177
|
* @param {String} destination one of many different types of destinations to look up info for
|
|
178
|
-
* @param {
|
|
178
|
+
* @param {DESTINATION_TYPE} [type] to match up with the destination value
|
|
179
179
|
* @param {String} [password] meeting password
|
|
180
180
|
* @param {Object} [captchaInfo] captcha code and id
|
|
181
181
|
* @param {String} [installedOrgID]
|
|
@@ -197,7 +197,7 @@ var MeetingInfo = exports.default = /*#__PURE__*/function () {
|
|
|
197
197
|
var locusId = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
198
198
|
var extraParams = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
|
|
199
199
|
var options = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : {};
|
|
200
|
-
if (type === _constants.
|
|
200
|
+
if (type === _constants.DESTINATION_TYPE.PERSONAL_ROOM && !destination) {
|
|
201
201
|
destination = this.webex.internal.device.userId;
|
|
202
202
|
}
|
|
203
203
|
return this.fetchInfoOptions(_util.default.extractDestination(destination, type), type).then(function (infoOptions) {
|
|
@@ -205,9 +205,9 @@ var MeetingInfo = exports.default = /*#__PURE__*/function () {
|
|
|
205
205
|
// fetch meeting info
|
|
206
206
|
_this2.requestFetchInfo(_objectSpread(_objectSpread({}, infoOptions), options)).catch(function (error) {
|
|
207
207
|
// if it failed the first time as meeting link
|
|
208
|
-
if (infoOptions.type === _constants.
|
|
208
|
+
if (infoOptions.type === _constants.DESTINATION_TYPE.MEETING_LINK) {
|
|
209
209
|
// convert the meeting link to sip URI and retry
|
|
210
|
-
return _this2.requestFetchInfo(_objectSpread(_objectSpread({}, _this2.fetchInfoOptions(_util.default.convertLinkToSip(destination), _constants.
|
|
210
|
+
return _this2.requestFetchInfo(_objectSpread(_objectSpread({}, _this2.fetchInfoOptions(_util.default.convertLinkToSip(destination), _constants.DESTINATION_TYPE.SIP_URI)), options));
|
|
211
211
|
}
|
|
212
212
|
return _promise.default.reject(error);
|
|
213
213
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","_loggerProxy","_interopRequireDefault","_collection","_request","_util","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingInfo","exports","webex","_classCallCheck2","meetingInfoRequest","MeetingInfoRequest","meetingInfoCollection","MeetingInfoCollection","_createClass2","key","value","getMeetingInfo","id","get","setMeetingInfo","info","set","requestFetchInfo","options","_this","meetingId","sendCAevents","internal","newMetrics","submitInternalEvent","name","submitClientEvent","fetchMeetingInfo","then","_info$body","_info$body2","_info$body3","payload","identifiers","meetingLookupUrl","url","webexConferenceIdStr","body","confIdStr","confID","globalMeetingId","sipMeetingUri","meetingLink","catch","error","LoggerProxy","logger","concat","rawError","_promise","reject","fetchInfoOptions","destination","type","MeetingInfoUtil","generateOptions","_this2","undefined","password","captchaInfo","installedOrgID","locusId","extraParams","_PERSONAL_ROOM_","device","userId","extractDestination","infoOptions","_MEETING_LINK_","convertLinkToSip","_SIP_URI_"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {_MEETING_LINK_, _SIP_URI_, _PERSONAL_ROOM_} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport MeetingInfoCollection from './collection';\nimport MeetingInfoRequest from './request';\nimport MeetingInfoUtil from './util';\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfo {\n meetingInfoCollection: any;\n meetingInfoRequest: any;\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex: any) {\n this.webex = webex;\n\n /**\n * The meeting info request server interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoRequest = new MeetingInfoRequest(this.webex);\n /**\n * The meeting information collection interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoCollection = new MeetingInfoCollection();\n }\n\n /**\n * @param {string} id\n * @returns {object}\n * @public\n * @memberof MeetingInfo\n */\n public getMeetingInfo(id: string) {\n return this.meetingInfoCollection.get(id);\n }\n\n /**\n * @param {string} id\n * @param {object} info\n * @returns {null}\n * @public\n * @memberof MeetingInfo\n */\n public setMeetingInfo(id: string, info: object) {\n this.meetingInfoCollection.set(id, info);\n }\n\n /**\n * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject\n * @param {Object} options\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private requestFetchInfo(options: any) {\n const {meetingId, sendCAevents} = options;\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.meetingInfoRequest\n .fetchMeetingInfo(options)\n .then((info) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: info?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: info?.body?.confIdStr || info?.body?.confID,\n globalMeetingId: info?.body?.meetingId,\n },\n });\n }\n if (info && info.body) {\n this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);\n }\n\n return info;\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`\n );\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: error?.url,\n },\n },\n options: {\n meetingId,\n rawError: error,\n },\n });\n }\n\n return Promise.reject(error);\n });\n }\n\n /**\n * Helper to generate the options for the MeetingInfo request\n * @param {String} destination\n * @param {String} type\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private fetchInfoOptions(destination: string, type: string) {\n return MeetingInfoUtil.generateOptions({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n // eslint-disable-next-line valid-jsdoc\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @param {String} [password] meeting password\n * @param {Object} [captchaInfo] captcha code and id\n * @param {String} [installedOrgID]\n * @param {String} [locusId]\n * @param {Object} [extraParams]\n * @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n public fetchMeetingInfo(\n destination: string,\n type: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n password: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n installedOrgID = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n locusId = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {}\n ) {\n if (type === _PERSONAL_ROOM_ && !destination) {\n destination = this.webex.internal.device.userId;\n }\n\n return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(\n (infoOptions) =>\n // fetch meeting info\n this.requestFetchInfo({...infoOptions, ...options}).catch((error) => {\n // if it failed the first time as meeting link\n if (infoOptions.type === _MEETING_LINK_) {\n // convert the meeting link to sip URI and retry\n return this.requestFetchInfo({\n ...this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_),\n ...options,\n });\n }\n\n return Promise.reject(error);\n })\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,QAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAqC,SAAAM,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA,IATrC;AACA;AACA;AASA;AACA;AACA;AAFA,IAGqBqB,WAAW,GAAAC,OAAA,CAAAL,OAAA;EAK9B;AACF;AACA;AACA;EACE,SAAAI,YAAYE,KAAU,EAAE;IAAA,IAAAC,gBAAA,CAAAP,OAAA,QAAAI,WAAA;IAAA,IAAAL,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IACtB,IAAI,CAACM,KAAK,GAAGA,KAAK;;IAElB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACE,kBAAkB,GAAG,IAAIC,gBAAkB,CAAC,IAAI,CAACH,KAAK,CAAC;IAC5D;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACI,qBAAqB,GAAG,IAAIC,mBAAqB,CAAC,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAC,aAAA,CAAAZ,OAAA,EAAAI,WAAA;IAAAS,GAAA;IAAAC,KAAA,EAMA,SAAAC,eAAsBC,EAAU,EAAE;MAChC,OAAO,IAAI,CAACN,qBAAqB,CAACO,GAAG,CAACD,EAAE,CAAC;IAC3C;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAH,GAAA;IAAAC,KAAA,EAOA,SAAAI,eAAsBF,EAAU,EAAEG,IAAY,EAAE;MAC9C,IAAI,CAACT,qBAAqB,CAACU,GAAG,CAACJ,EAAE,EAAEG,IAAI,CAAC;IAC1C;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAN,GAAA;IAAAC,KAAA,EAOA,SAAAO,iBAAyBC,OAAY,EAAE;MAAA,IAAAC,KAAA;MACrC,IAAOC,SAAS,GAAkBF,OAAO,CAAlCE,SAAS;QAAEC,YAAY,GAAIH,OAAO,CAAvBG,YAAY;MAC9B,IAAID,SAAS,IAAIC,YAAY,EAAE;QAC7B,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;UACjDC,IAAI,EAAE;QACR,CAAC,CAAC;QACF,IAAI,CAACvB,KAAK,CAACoB,QAAQ,CAACC,UAAU,CAACG,iBAAiB,CAAC;UAC/CD,IAAI,EAAE,4BAA4B;UAClCP,OAAO,EAAE;YACPE,SAAS,EAATA;UACF;QACF,CAAC,CAAC;MACJ;MAEA,OAAO,IAAI,CAAChB,kBAAkB,CAC3BuB,gBAAgB,CAACT,OAAO,CAAC,CACzBU,IAAI,CAAC,UAACb,IAAI,EAAK;QACd,IAAIK,SAAS,IAAIC,YAAY,EAAE;UAAA,IAAAQ,UAAA,EAAAC,WAAA,EAAAC,WAAA;UAC7BZ,KAAI,CAACjB,KAAK,CAACoB,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;YACjDC,IAAI,EAAE;UACR,CAAC,CAAC;UACFN,KAAI,CAACjB,KAAK,CAACoB,QAAQ,CAACC,UAAU,CAACG,iBAAiB,CAAC;YAC/CD,IAAI,EAAE,6BAA6B;YACnCO,OAAO,EAAE;cACPC,WAAW,EAAE;gBACXC,gBAAgB,EAAEnB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEoB;cAC1B;YACF,CAAC;YACDjB,OAAO,EAAE;cACPE,SAAS,EAATA,SAAS;cACTgB,oBAAoB,EAAE,CAAArB,IAAI,aAAJA,IAAI,wBAAAc,UAAA,GAAJd,IAAI,CAAEsB,IAAI,cAAAR,UAAA,uBAAVA,UAAA,CAAYS,SAAS,MAAIvB,IAAI,aAAJA,IAAI,wBAAAe,WAAA,GAAJf,IAAI,CAAEsB,IAAI,cAAAP,WAAA,uBAAVA,WAAA,CAAYS,MAAM;cACjEC,eAAe,EAAEzB,IAAI,aAAJA,IAAI,wBAAAgB,WAAA,GAAJhB,IAAI,CAAEsB,IAAI,cAAAN,WAAA,uBAAVA,WAAA,CAAYX;YAC/B;UACF,CAAC,CAAC;QACJ;QACA,IAAIL,IAAI,IAAIA,IAAI,CAACsB,IAAI,EAAE;UACrBlB,KAAI,CAACL,cAAc,CAACC,IAAI,CAACsB,IAAI,CAACI,aAAa,IAAI1B,IAAI,CAACsB,IAAI,CAACK,WAAW,EAAE3B,IAAI,CAACsB,IAAI,CAAC;QAClF;QAEA,OAAOtB,IAAI;MACb,CAAC,CAAC,CACD4B,KAAK,CAAC,UAACC,KAAK,EAAK;QAChBC,oBAAW,CAACC,MAAM,CAACF,KAAK,6CAAAG,MAAA,CACsBH,KAAK,uBACnD,CAAC;QACD,IAAIxB,SAAS,IAAIC,YAAY,EAAE;UAC7BF,KAAI,CAACjB,KAAK,CAACoB,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;YACjDC,IAAI,EAAE;UACR,CAAC,CAAC;UACFN,KAAI,CAACjB,KAAK,CAACoB,QAAQ,CAACC,UAAU,CAACG,iBAAiB,CAAC;YAC/CD,IAAI,EAAE,6BAA6B;YACnCO,OAAO,EAAE;cACPC,WAAW,EAAE;gBACXC,gBAAgB,EAAEU,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAET;cAC3B;YACF,CAAC;YACDjB,OAAO,EAAE;cACPE,SAAS,EAATA,SAAS;cACT4B,QAAQ,EAAEJ;YACZ;UACF,CAAC,CAAC;QACJ;QAEA,OAAOK,QAAA,CAAArD,OAAA,CAAQsD,MAAM,CAACN,KAAK,CAAC;MAC9B,CAAC,CAAC;IACN;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAnC,GAAA;IAAAC,KAAA,EAQA,SAAAyC,iBAAyBC,WAAmB,EAAEC,IAAY,EAAE;MAC1D,OAAOC,aAAe,CAACC,eAAe,CAAC;QACrCH,WAAW,EAAXA,WAAW;QACXC,IAAI,EAAJA,IAAI;QACJnD,KAAK,EAAE,IAAI,CAACA;MACd,CAAC,CAAC;IACJ;;IAEA;IACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAbE;IAAAO,GAAA;IAAAC,KAAA,EAcA,SAAAiB,iBACEyB,WAAmB,EAgBnB;MAAA,IAAAI,MAAA;MAAA,IAfAH,IAAY,GAAA9D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkE,SAAA,GAAAlE,SAAA,MAAG,IAAI;MAAA,IAEnBmE,QAAgB,GAAAnE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkE,SAAA,GAAAlE,SAAA,MAAG,IAAI;MAAA,IAEvBoE,WAGC,GAAApE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkE,SAAA,GAAAlE,SAAA,MAAG,IAAI;MAAA,IAERqE,cAAc,GAAArE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkE,SAAA,GAAAlE,SAAA,MAAG,IAAI;MAAA,IAErBsE,OAAO,GAAAtE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkE,SAAA,GAAAlE,SAAA,MAAG,IAAI;MAAA,IAEduE,WAAmB,GAAAvE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkE,SAAA,GAAAlE,SAAA,MAAG,CAAC,CAAC;MAAA,IACxB2B,OAAqD,GAAA3B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkE,SAAA,GAAAlE,SAAA,MAAG,CAAC,CAAC;MAE1D,IAAI8D,IAAI,KAAKU,0BAAe,IAAI,CAACX,WAAW,EAAE;QAC5CA,WAAW,GAAG,IAAI,CAAClD,KAAK,CAACoB,QAAQ,CAAC0C,MAAM,CAACC,MAAM;MACjD;MAEA,OAAO,IAAI,CAACd,gBAAgB,CAACG,aAAe,CAACY,kBAAkB,CAACd,WAAW,EAAEC,IAAI,CAAC,EAAEA,IAAI,CAAC,CAACzB,IAAI,CAC5F,UAACuC,WAAW;QAAA;UACV;UACAX,MAAI,CAACvC,gBAAgB,CAAA3B,aAAA,CAAAA,aAAA,KAAK6E,WAAW,GAAKjD,OAAO,CAAC,CAAC,CAACyB,KAAK,CAAC,UAACC,KAAK,EAAK;YACnE;YACA,IAAIuB,WAAW,CAACd,IAAI,KAAKe,yBAAc,EAAE;cACvC;cACA,OAAOZ,MAAI,CAACvC,gBAAgB,CAAA3B,aAAA,CAAAA,aAAA,KACvBkE,MAAI,CAACL,gBAAgB,CAACG,aAAe,CAACe,gBAAgB,CAACjB,WAAW,CAAC,EAAEkB,oBAAS,CAAC,GAC/EpD,OAAO,CACX,CAAC;YACJ;YAEA,OAAO+B,QAAA,CAAArD,OAAA,CAAQsD,MAAM,CAACN,KAAK,CAAC;UAC9B,CAAC;QAAC;MAAA,CACN,CAAC;IACH;EAAC;EAAA,OAAA5C,WAAA;AAAA"}
|
|
1
|
+
{"version":3,"names":["_constants","require","_loggerProxy","_interopRequireDefault","_collection","_request","_util","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingInfo","exports","webex","_classCallCheck2","meetingInfoRequest","MeetingInfoRequest","meetingInfoCollection","MeetingInfoCollection","_createClass2","key","value","getMeetingInfo","id","get","setMeetingInfo","info","set","requestFetchInfo","options","_this","meetingId","sendCAevents","internal","newMetrics","submitInternalEvent","name","submitClientEvent","fetchMeetingInfo","then","_info$body","_info$body2","_info$body3","payload","identifiers","meetingLookupUrl","url","webexConferenceIdStr","body","confIdStr","confID","globalMeetingId","sipMeetingUri","meetingLink","catch","error","LoggerProxy","logger","concat","rawError","_promise","reject","fetchInfoOptions","destination","type","MeetingInfoUtil","generateOptions","_this2","undefined","password","captchaInfo","installedOrgID","locusId","extraParams","DESTINATION_TYPE","PERSONAL_ROOM","device","userId","extractDestination","infoOptions","MEETING_LINK","convertLinkToSip","SIP_URI"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {DESTINATION_TYPE} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport MeetingInfoCollection from './collection';\nimport MeetingInfoRequest from './request';\nimport MeetingInfoUtil from './util';\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfo {\n meetingInfoCollection: any;\n meetingInfoRequest: any;\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex: any) {\n this.webex = webex;\n\n /**\n * The meeting info request server interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoRequest = new MeetingInfoRequest(this.webex);\n /**\n * The meeting information collection interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoCollection = new MeetingInfoCollection();\n }\n\n /**\n * @param {string} id\n * @returns {object}\n * @public\n * @memberof MeetingInfo\n */\n public getMeetingInfo(id: string) {\n return this.meetingInfoCollection.get(id);\n }\n\n /**\n * @param {string} id\n * @param {object} info\n * @returns {null}\n * @public\n * @memberof MeetingInfo\n */\n public setMeetingInfo(id: string, info: object) {\n this.meetingInfoCollection.set(id, info);\n }\n\n /**\n * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject\n * @param {Object} options\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private requestFetchInfo(options: any) {\n const {meetingId, sendCAevents} = options;\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.meetingInfoRequest\n .fetchMeetingInfo(options)\n .then((info) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: info?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: info?.body?.confIdStr || info?.body?.confID,\n globalMeetingId: info?.body?.meetingId,\n },\n });\n }\n if (info && info.body) {\n this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);\n }\n\n return info;\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`\n );\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: error?.url,\n },\n },\n options: {\n meetingId,\n rawError: error,\n },\n });\n }\n\n return Promise.reject(error);\n });\n }\n\n /**\n * Helper to generate the options for the MeetingInfo request\n * @param {String} destination\n * @param {String} type\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private fetchInfoOptions(destination: string, type: string) {\n return MeetingInfoUtil.generateOptions({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n // eslint-disable-next-line valid-jsdoc\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {DESTINATION_TYPE} [type] to match up with the destination value\n * @param {String} [password] meeting password\n * @param {Object} [captchaInfo] captcha code and id\n * @param {String} [installedOrgID]\n * @param {String} [locusId]\n * @param {Object} [extraParams]\n * @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n public fetchMeetingInfo(\n destination: string,\n type: DESTINATION_TYPE = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n password: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n installedOrgID = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n locusId = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {}\n ) {\n if (type === DESTINATION_TYPE.PERSONAL_ROOM && !destination) {\n destination = this.webex.internal.device.userId;\n }\n\n return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(\n (infoOptions) =>\n // fetch meeting info\n this.requestFetchInfo({...infoOptions, ...options}).catch((error) => {\n // if it failed the first time as meeting link\n if (infoOptions.type === DESTINATION_TYPE.MEETING_LINK) {\n // convert the meeting link to sip URI and retry\n return this.requestFetchInfo({\n ...this.fetchInfoOptions(\n MeetingInfoUtil.convertLinkToSip(destination),\n DESTINATION_TYPE.SIP_URI\n ),\n ...options,\n });\n }\n\n return Promise.reject(error);\n })\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -296,7 +296,7 @@ var MeetingInfoV2 = exports.default = /*#__PURE__*/function () {
|
|
|
296
296
|
/**
|
|
297
297
|
* Fetches meeting info from the server
|
|
298
298
|
* @param {String} destination one of many different types of destinations to look up info for
|
|
299
|
-
* @param {
|
|
299
|
+
* @param {DESTINATION_TYPE} [type] to match up with the destination value
|
|
300
300
|
* @param {String} password
|
|
301
301
|
* @param {Object} captchaInfo
|
|
302
302
|
* @param {String} captchaInfo.code
|
|
@@ -351,7 +351,7 @@ var MeetingInfoV2 = exports.default = /*#__PURE__*/function () {
|
|
|
351
351
|
});
|
|
352
352
|
case 10:
|
|
353
353
|
destinationType = _context2.sent;
|
|
354
|
-
if (!(destinationType.type === _constants.
|
|
354
|
+
if (!(destinationType.type === _constants.DESTINATION_TYPE.CONVERSATION_URL && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite)) {
|
|
355
355
|
_context2.next = 13;
|
|
356
356
|
break;
|
|
357
357
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","_interopRequireDefault","require","_constants","_metrics","_constants2","_utilv","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","PASSWORD_ERROR_DEFAULT_MESSAGE","CAPTCHA_ERROR_DEFAULT_MESSAGE","ADHOC_MEETING_DEFAULT_ERROR","CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES","POLICY_ERROR_CODES","MeetingInfoV2PasswordError","exports","_Error","_inherits2","_super","wbxAppApiErrorCode","meetingInfo","_this","message","undefined","_classCallCheck2","concat","_assertThisInitialized2","name","sdkMessage","stack","Error","wbxAppApiCode","_createClass2","_wrapNativeSuper2","MeetingInfoV2AdhocMeetingError","_Error2","_super2","_this2","MeetingInfoV2PolicyError","_Error3","_super3","_this3","MeetingInfoV2CaptchaError","_Error4","_super4","captchaInfo","_this4","isPasswordRequired","includes","MeetingInfoV2","webex","err","_err$body","body","code","_err$body2","_err$body3","_err$body4","_err$body4$data","_err$body5","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_INFO_POLICY_ERROR","data","key","value","fetchInfoOptions","destination","type","MeetingInfoUtil","getDestinationType","_createAdhocSpaceMeeting","_asyncToGenerator2","_regenerator","mark","_callee","conversationUrl","installedOrgID","_this5","getInvitees","wrap","_callee$","_context","prev","next","meetings","preferredWebexSite","particpants","invitees","participant","email","emailAddress","ciUserUuid","entryUUID","abrupt","request","uri","qs","includeParticipants","disableTransform","then","_ref","_conversation$partici","conversation","title","displayName","spaceUrl","url","keyUrl","encryptionKeyUrl","kroUrl","kmsResourceObjectUrl","participants","items","method","HTTP_VERBS","POST","requestResult","ADHOC_MEETING_SUCCESS","catch","_err$body6","_err$body7","handlePolicyError","ADHOC_MEETING_FAILURE","reason","stop","createAdhocSpaceMeeting","_x","_x2","_fetchMeetingInfo","_callee2","_this6","password","locusId","extraParams","options","meetingId","sendCAevents","destinationType","_destinationType$info","_destinationType$info2","requestOptions","directURI","_args2","_callee2$","_context2","sent","_CONVERSATION_URL_","config","experimental","enableAdhocMeetings","getRequestBody","lodash","difference","_keys","DEFAULT_MEETING_INFO_REQUEST_BODY","FETCH_MEETING_INFO_V1_FAILURE","webExMeetingId","info","sipUri","getDirectMeetingInfoURI","service","WBXAPPAPI_SERVICE","resource","internal","newMetrics","submitInternalEvent","submitClientEvent","response","_response$body","_response$body2","_response$body3","payload","identifiers","meetingLookupUrl","webexConferenceIdStr","confIdStr","confID","globalMeetingId","FETCH_MEETING_INFO_V1_SUCCESS","rawError","statusCode","_err$body8","_err$body9","_err$body9$data","VERIFY_PASSWORD_ERROR","_err$body10","VERIFY_CAPTCHA_ERROR","captchaId","captchaID","verificationImageURL","verificationAudioURL","refreshURL","fetchMeetingInfo","_x3"],"sources":["meeting-info-v2.ts"],"sourcesContent":["import lodash from 'lodash';\nimport {\n HTTP_VERBS,\n _CONVERSATION_URL_,\n WBXAPPAPI_SERVICE,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport MeetingInfoUtil from './utilv2';\n\nconst PASSWORD_ERROR_DEFAULT_MESSAGE =\n 'Password required. Call fetchMeetingInfo() with password argument';\nconst CAPTCHA_ERROR_DEFAULT_MESSAGE =\n 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';\nconst ADHOC_MEETING_DEFAULT_ERROR =\n 'Failed starting the adhoc meeting, Please contact support team ';\nconst CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];\nconst POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];\n/**\n * Error to indicate that wbxappapi requires a password\n */\nexport class MeetingInfoV2PasswordError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n meetingInfo?: object,\n message: string = PASSWORD_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error generating a adhoc space meeting\n */\nexport class MeetingInfoV2AdhocMeetingError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = ADHOC_MEETING_DEFAULT_ERROR) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error preventing join because of a meeting policy\n */\nexport class MeetingInfoV2PolicyError extends Error {\n meetingInfo: object;\n sdkMessage: string;\n wbxAppApiCode: number;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error to indicate that preferred webex site not present to start adhoc meeting\n */\nexport class MeetingInfoV2CaptchaError extends Error {\n captchaInfo: any;\n isPasswordRequired: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [captchaInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n captchaInfo?: object,\n message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);\n this.captchaInfo = captchaInfo;\n }\n}\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfoV2 {\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex) {\n this.webex = webex;\n }\n\n /**\n * converts hydra id into conversation url and persons Id\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} destination and type\n * @public\n * @memberof MeetingInfo\n */\n fetchInfoOptions(destination: string, type: string = null) {\n return MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n /**\n * Raises a MeetingInfoV2PolicyError for policy error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n handlePolicyError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (POLICY_ERROR_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2PolicyError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * Creates adhoc space meetings for a space by fetching the conversation infomation\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n const getInvitees = (particpants = []) => {\n const invitees = [];\n\n if (particpants) {\n particpants.forEach((participant) => {\n invitees.push({\n email: participant.emailAddress,\n ciUserUuid: participant.entryUUID,\n });\n });\n }\n\n return invitees;\n };\n\n return this.webex\n .request({uri: conversationUrl, qs: {includeParticipants: true}, disableTransform: true})\n .then(({body: conversation}) => {\n const body = {\n title: conversation.displayName,\n spaceUrl: conversation.url,\n keyUrl: conversation.encryptionKeyUrl,\n kroUrl: conversation.kmsResourceObjectUrl,\n invitees: getInvitees(conversation.participants?.items),\n installedOrgID,\n };\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`\n : '';\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n });\n })\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);\n });\n }\n\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @param {String} password\n * @param {Object} captchaInfo\n * @param {String} captchaInfo.code\n * @param {String} captchaInfo.id\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} locusId\n * @param {Object} extraParams\n * @param {Object} options\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async fetchMeetingInfo(\n destination: string,\n type: string = null,\n password: string = null,\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n installedOrgID = null,\n locusId = null,\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {}\n ) {\n const {meetingId, sendCAevents} = options;\n\n const destinationType = await MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n\n if (\n destinationType.type === _CONVERSATION_URL_ &&\n this.webex.config.meetings.experimental.enableAdhocMeetings &&\n this.webex.meetings.preferredWebexSite\n ) {\n return this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID);\n }\n\n const body = await MeetingInfoUtil.getRequestBody({\n ...destinationType,\n password,\n captchaInfo,\n installedOrgID,\n locusId,\n extraParams,\n });\n\n // If the body only contains the default properties, we don't have enough to\n // fetch the meeting info so don't bother trying.\n if (\n !lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length\n ) {\n const err = new Error('Not enough information to fetch meeting info');\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n destinationType: destinationType?.type,\n webExMeetingId: destinationType?.info?.webExMeetingId,\n sipUri: destinationType?.info?.sipUri,\n });\n\n throw err;\n }\n\n const requestOptions: any = {\n method: HTTP_VERBS.POST,\n body,\n };\n\n const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);\n\n if (directURI) {\n requestOptions.uri = directURI;\n } else {\n requestOptions.service = WBXAPPAPI_SERVICE;\n requestOptions.resource = 'meetingInfo';\n }\n\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.webex\n .request(requestOptions)\n .then((response) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: response?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: response?.body?.confIdStr || response?.body?.confID,\n globalMeetingId: response?.body?.meetingId,\n },\n });\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);\n\n return response;\n })\n .catch((err) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: err?.url,\n },\n },\n options: {\n meetingId,\n rawError: err,\n },\n });\n }\n\n if (err?.statusCode === 403) {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);\n }\n if (err?.statusCode === 423) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2CaptchaError(err.body?.code, {\n captchaId: err.body.captchaID,\n verificationImageURL: err.body.verificationImageURL,\n verificationAudioURL: err.body.verificationAudioURL,\n refreshURL: err.body.refreshURL,\n });\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw err;\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_lodash","_interopRequireDefault","require","_constants","_metrics","_constants2","_utilv","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","PASSWORD_ERROR_DEFAULT_MESSAGE","CAPTCHA_ERROR_DEFAULT_MESSAGE","ADHOC_MEETING_DEFAULT_ERROR","CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES","POLICY_ERROR_CODES","MeetingInfoV2PasswordError","exports","_Error","_inherits2","_super","wbxAppApiErrorCode","meetingInfo","_this","message","undefined","_classCallCheck2","concat","_assertThisInitialized2","name","sdkMessage","stack","Error","wbxAppApiCode","_createClass2","_wrapNativeSuper2","MeetingInfoV2AdhocMeetingError","_Error2","_super2","_this2","MeetingInfoV2PolicyError","_Error3","_super3","_this3","MeetingInfoV2CaptchaError","_Error4","_super4","captchaInfo","_this4","isPasswordRequired","includes","MeetingInfoV2","webex","err","_err$body","body","code","_err$body2","_err$body3","_err$body4","_err$body4$data","_err$body5","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_INFO_POLICY_ERROR","data","key","value","fetchInfoOptions","destination","type","MeetingInfoUtil","getDestinationType","_createAdhocSpaceMeeting","_asyncToGenerator2","_regenerator","mark","_callee","conversationUrl","installedOrgID","_this5","getInvitees","wrap","_callee$","_context","prev","next","meetings","preferredWebexSite","particpants","invitees","participant","email","emailAddress","ciUserUuid","entryUUID","abrupt","request","uri","qs","includeParticipants","disableTransform","then","_ref","_conversation$partici","conversation","title","displayName","spaceUrl","url","keyUrl","encryptionKeyUrl","kroUrl","kmsResourceObjectUrl","participants","items","method","HTTP_VERBS","POST","requestResult","ADHOC_MEETING_SUCCESS","catch","_err$body6","_err$body7","handlePolicyError","ADHOC_MEETING_FAILURE","reason","stop","createAdhocSpaceMeeting","_x","_x2","_fetchMeetingInfo","_callee2","_this6","password","locusId","extraParams","options","meetingId","sendCAevents","destinationType","_destinationType$info","_destinationType$info2","requestOptions","directURI","_args2","_callee2$","_context2","sent","DESTINATION_TYPE","CONVERSATION_URL","config","experimental","enableAdhocMeetings","getRequestBody","lodash","difference","_keys","DEFAULT_MEETING_INFO_REQUEST_BODY","FETCH_MEETING_INFO_V1_FAILURE","webExMeetingId","info","sipUri","getDirectMeetingInfoURI","service","WBXAPPAPI_SERVICE","resource","internal","newMetrics","submitInternalEvent","submitClientEvent","response","_response$body","_response$body2","_response$body3","payload","identifiers","meetingLookupUrl","webexConferenceIdStr","confIdStr","confID","globalMeetingId","FETCH_MEETING_INFO_V1_SUCCESS","rawError","statusCode","_err$body8","_err$body9","_err$body9$data","VERIFY_PASSWORD_ERROR","_err$body10","VERIFY_CAPTCHA_ERROR","captchaId","captchaID","verificationImageURL","verificationAudioURL","refreshURL","fetchMeetingInfo","_x3"],"sources":["meeting-info-v2.ts"],"sourcesContent":["import lodash from 'lodash';\nimport {\n HTTP_VERBS,\n DESTINATION_TYPE,\n WBXAPPAPI_SERVICE,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport MeetingInfoUtil from './utilv2';\n\nconst PASSWORD_ERROR_DEFAULT_MESSAGE =\n 'Password required. Call fetchMeetingInfo() with password argument';\nconst CAPTCHA_ERROR_DEFAULT_MESSAGE =\n 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';\nconst ADHOC_MEETING_DEFAULT_ERROR =\n 'Failed starting the adhoc meeting, Please contact support team ';\nconst CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];\nconst POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];\n/**\n * Error to indicate that wbxappapi requires a password\n */\nexport class MeetingInfoV2PasswordError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n meetingInfo?: object,\n message: string = PASSWORD_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error generating a adhoc space meeting\n */\nexport class MeetingInfoV2AdhocMeetingError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = ADHOC_MEETING_DEFAULT_ERROR) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error preventing join because of a meeting policy\n */\nexport class MeetingInfoV2PolicyError extends Error {\n meetingInfo: object;\n sdkMessage: string;\n wbxAppApiCode: number;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error to indicate that preferred webex site not present to start adhoc meeting\n */\nexport class MeetingInfoV2CaptchaError extends Error {\n captchaInfo: any;\n isPasswordRequired: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [captchaInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n captchaInfo?: object,\n message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);\n this.captchaInfo = captchaInfo;\n }\n}\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfoV2 {\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex) {\n this.webex = webex;\n }\n\n /**\n * converts hydra id into conversation url and persons Id\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} destination and type\n * @public\n * @memberof MeetingInfo\n */\n fetchInfoOptions(destination: string, type: string = null) {\n return MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n /**\n * Raises a MeetingInfoV2PolicyError for policy error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n handlePolicyError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (POLICY_ERROR_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2PolicyError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * Creates adhoc space meetings for a space by fetching the conversation infomation\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n const getInvitees = (particpants = []) => {\n const invitees = [];\n\n if (particpants) {\n particpants.forEach((participant) => {\n invitees.push({\n email: participant.emailAddress,\n ciUserUuid: participant.entryUUID,\n });\n });\n }\n\n return invitees;\n };\n\n return this.webex\n .request({uri: conversationUrl, qs: {includeParticipants: true}, disableTransform: true})\n .then(({body: conversation}) => {\n const body = {\n title: conversation.displayName,\n spaceUrl: conversation.url,\n keyUrl: conversation.encryptionKeyUrl,\n kroUrl: conversation.kmsResourceObjectUrl,\n invitees: getInvitees(conversation.participants?.items),\n installedOrgID,\n };\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`\n : '';\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n });\n })\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);\n });\n }\n\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {DESTINATION_TYPE} [type] to match up with the destination value\n * @param {String} password\n * @param {Object} captchaInfo\n * @param {String} captchaInfo.code\n * @param {String} captchaInfo.id\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} locusId\n * @param {Object} extraParams\n * @param {Object} options\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async fetchMeetingInfo(\n destination: string,\n type: DESTINATION_TYPE = null,\n password: string = null,\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n installedOrgID = null,\n locusId = null,\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {}\n ) {\n const {meetingId, sendCAevents} = options;\n\n const destinationType = await MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n\n if (\n destinationType.type === DESTINATION_TYPE.CONVERSATION_URL &&\n this.webex.config.meetings.experimental.enableAdhocMeetings &&\n this.webex.meetings.preferredWebexSite\n ) {\n return this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID);\n }\n\n const body = await MeetingInfoUtil.getRequestBody({\n ...destinationType,\n password,\n captchaInfo,\n installedOrgID,\n locusId,\n extraParams,\n });\n\n // If the body only contains the default properties, we don't have enough to\n // fetch the meeting info so don't bother trying.\n if (\n !lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length\n ) {\n const err = new Error('Not enough information to fetch meeting info');\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n destinationType: destinationType?.type,\n webExMeetingId: destinationType?.info?.webExMeetingId,\n sipUri: destinationType?.info?.sipUri,\n });\n\n throw err;\n }\n\n const requestOptions: any = {\n method: HTTP_VERBS.POST,\n body,\n };\n\n const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);\n\n if (directURI) {\n requestOptions.uri = directURI;\n } else {\n requestOptions.service = WBXAPPAPI_SERVICE;\n requestOptions.resource = 'meetingInfo';\n }\n\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.webex\n .request(requestOptions)\n .then((response) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: response?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: response?.body?.confIdStr || response?.body?.confID,\n globalMeetingId: response?.body?.meetingId,\n },\n });\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);\n\n return response;\n })\n .catch((err) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: err?.url,\n },\n },\n options: {\n meetingId,\n rawError: err,\n },\n });\n }\n\n if (err?.statusCode === 403) {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);\n }\n if (err?.statusCode === 423) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2CaptchaError(err.body?.code, {\n captchaId: err.body.captchaID,\n verificationImageURL: err.body.verificationImageURL,\n verificationAudioURL: err.body.verificationAudioURL,\n refreshURL: err.body.refreshURL,\n });\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw err;\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
29
29
|
key: "extractDestination",
|
|
30
30
|
value: function extractDestination(destination, type) {
|
|
31
31
|
var dest = destination;
|
|
32
|
-
if (type === _constants.
|
|
32
|
+
if (type === _constants.DESTINATION_TYPE.LOCUS_ID) {
|
|
33
33
|
if (!(destination && destination.url)) {
|
|
34
34
|
throw new _parameter.default('You cannot create a meeting by locus without a locus.url defined');
|
|
35
35
|
}
|
|
@@ -185,7 +185,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
185
185
|
break;
|
|
186
186
|
}
|
|
187
187
|
_loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
|
|
188
|
-
options.type = _constants.
|
|
188
|
+
options.type = _constants.DESTINATION_TYPE.MEETING_LINK;
|
|
189
189
|
options.destination = destination;
|
|
190
190
|
_context.next = 47;
|
|
191
191
|
break;
|
|
@@ -194,7 +194,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
194
194
|
_context.next = 16;
|
|
195
195
|
break;
|
|
196
196
|
}
|
|
197
|
-
options.type = _constants.
|
|
197
|
+
options.type = _constants.DESTINATION_TYPE.SIP_URI;
|
|
198
198
|
options.destination = destination;
|
|
199
199
|
_context.next = 47;
|
|
200
200
|
break;
|
|
@@ -203,7 +203,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
203
203
|
_context.next = 21;
|
|
204
204
|
break;
|
|
205
205
|
}
|
|
206
|
-
options.type = _constants.
|
|
206
|
+
options.type = _constants.DESTINATION_TYPE.SIP_URI;
|
|
207
207
|
options.destination = destination;
|
|
208
208
|
_context.next = 47;
|
|
209
209
|
break;
|
|
@@ -212,7 +212,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
212
212
|
_context.next = 26;
|
|
213
213
|
break;
|
|
214
214
|
}
|
|
215
|
-
options.type = _constants.
|
|
215
|
+
options.type = _constants.DESTINATION_TYPE.CONVERSATION_URL;
|
|
216
216
|
options.destination = destination;
|
|
217
217
|
_context.next = 47;
|
|
218
218
|
break;
|
|
@@ -221,7 +221,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
221
221
|
_context.next = 31;
|
|
222
222
|
break;
|
|
223
223
|
}
|
|
224
|
-
options.type = _constants.
|
|
224
|
+
options.type = _constants.DESTINATION_TYPE.SIP_URI;
|
|
225
225
|
return _context.abrupt("return", this.getSipUriFromHydraPersonId(hydraId.destination, webex).then(function (res) {
|
|
226
226
|
options.destination = res;
|
|
227
227
|
|
|
@@ -236,7 +236,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
236
236
|
_context.next = 46;
|
|
237
237
|
break;
|
|
238
238
|
}
|
|
239
|
-
options.type = _constants.
|
|
239
|
+
options.type = _constants.DESTINATION_TYPE.CONVERSATION_URL;
|
|
240
240
|
_context.prev = 33;
|
|
241
241
|
_context.next = 36;
|
|
242
242
|
return webex.internal.services.waitForCatalog('postauth');
|
|
@@ -272,7 +272,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
272
272
|
}()
|
|
273
273
|
/**
|
|
274
274
|
* Helper function to build up a correct locus url depending on the value passed
|
|
275
|
-
* @param {
|
|
275
|
+
* @param {DESTINATION_TYPE} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
|
|
276
276
|
* @param {Object} value ?? value.value
|
|
277
277
|
* @returns {Object} returns an object with {resource, method}
|
|
278
278
|
*/
|
|
@@ -283,20 +283,20 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
283
283
|
var method = _constants.HTTP_VERBS.GET;
|
|
284
284
|
var uri = null;
|
|
285
285
|
switch (type) {
|
|
286
|
-
case _constants.
|
|
287
|
-
case _constants.
|
|
288
|
-
case _constants.
|
|
286
|
+
case _constants.DESTINATION_TYPE.SIP_URI:
|
|
287
|
+
case _constants.DESTINATION_TYPE.PERSONAL_ROOM:
|
|
288
|
+
case _constants.DESTINATION_TYPE.MEETING_ID:
|
|
289
289
|
resource = "/".concat(_constants.LOCI, "/").concat(_constants.MEETINGINFO, "/").concat(encodeURIComponent(value), "?").concat(_constants.TYPE, "=").concat(type, "&").concat(_constants.USE_URI_LOOKUP_FALSE);
|
|
290
290
|
break;
|
|
291
|
-
case _constants.
|
|
291
|
+
case _constants.DESTINATION_TYPE.CONVERSATION_URL:
|
|
292
292
|
method = _constants.HTTP_VERBS.PUT;
|
|
293
293
|
break;
|
|
294
|
-
case _constants.
|
|
294
|
+
case _constants.DESTINATION_TYPE.LOCUS_ID:
|
|
295
295
|
uri = "".concat(value, "/").concat(_constants.MEETINGINFO);
|
|
296
296
|
method = _constants.HTTP_VERBS.PUT;
|
|
297
297
|
break;
|
|
298
|
-
case _constants.
|
|
299
|
-
resource = "$/".concat(_constants.LOCI, "/").concat(_constants.MEETINGINFO, "/").concat((0, _btoa.default)(value), "?").concat(_constants.TYPE, "=").concat(_constants.
|
|
298
|
+
case _constants.DESTINATION_TYPE.MEETING_LINK:
|
|
299
|
+
resource = "$/".concat(_constants.LOCI, "/").concat(_constants.MEETINGINFO, "/").concat((0, _btoa.default)(value), "?").concat(_constants.TYPE, "=").concat(_constants.DESTINATION_TYPE.MEETING_LINK, "&").concat(_constants.USE_URI_LOOKUP_FALSE);
|
|
300
300
|
break;
|
|
301
301
|
default:
|
|
302
302
|
}
|
|
@@ -317,14 +317,14 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
317
317
|
if (resourceOptions.method === _constants.HTTP_VERBS.GET) {
|
|
318
318
|
// for handling URL redirections
|
|
319
319
|
requestParams.resource = requestParams.resource.concat("&".concat(_constants.ALTERNATE_REDIRECT_TRUE));
|
|
320
|
-
} else if (type !== _constants.
|
|
320
|
+
} else if (type !== _constants.DESTINATION_TYPE.LOCUS_ID) {
|
|
321
321
|
// locus id check is a PUT not sure why
|
|
322
322
|
requestParams.resource = requestParams.resource.concat("?".concat(_constants.ALTERNATE_REDIRECT_TRUE));
|
|
323
323
|
requestParams.body = {
|
|
324
324
|
value: value,
|
|
325
325
|
lookupType: type
|
|
326
326
|
};
|
|
327
|
-
} else if (type === _constants.
|
|
327
|
+
} else if (type === _constants.DESTINATION_TYPE.LOCUS_ID) {
|
|
328
328
|
requestParams = {
|
|
329
329
|
method: resourceOptions.method,
|
|
330
330
|
uri: resourceOptions.uri
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_url","_interopRequireDefault","require","_btoa","_common","_parameter","_loggerProxy","_constants","MeetingInfoUtil","exports","default","_classCallCheck2","_createClass2","key","value","extractDestination","destination","type","dest","_LOCUS_ID_","url","ParameterError","getParsedUrl","link","parsedUrl","parse","protocol","concat","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","hostNameBool","pathNameBool","hostname","includes","WEBEX_DOT_COM","pathname","MEET","MEET_M","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","convertLinkToSip","user","userIndex","lastIndexOf","substring","company","companyIndex","replace","WWW_DOT","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","_deconstructHydraId","deconstructHydraId","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","length","catch","err","_generateOptions","_asyncToGenerator2","_regenerator","mark","_callee","from","options","hydraId","serviceUrl","wrap","_callee$","_context","prev","next","abrupt","_MEETING_LINK_","_SIP_URI_","_CONVERSATION_URL_","wasHydraPerson","_promise","resolve","waitForCatalog","getServiceUrlFromClusterId","t0","stop","generateOptions","_x","apply","arguments","getResourceUrl","resource","LOCI","MEETINGINFO","method","HTTP_VERBS","GET","uri","_PERSONAL_ROOM_","_MEETING_ID_","encodeURIComponent","TYPE","USE_URI_LOOKUP_FALSE","PUT","btoa","getRequestParams","resourceOptions","api","requestParams","ALTERNATE_REDIRECT_TRUE","body","lookupType"],"sources":["util.ts"],"sourcesContent":["import url from 'url';\n\nimport btoa from 'btoa';\n// @ts-ignore\nimport {deconstructHydraId} from '@webex/common';\n\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {\n _SIP_URI_,\n _PERSONAL_ROOM_,\n _MEETING_ID_,\n _CONVERSATION_URL_,\n _LOCUS_ID_,\n _MEETING_LINK_,\n _PEOPLE_,\n _ROOM_,\n HTTP_VERBS,\n USE_URI_LOOKUP_FALSE,\n TYPE,\n LOCI,\n MEETINGINFO,\n ALTERNATE_REDIRECT_TRUE,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n WWW_DOT,\n JOIN,\n MEET,\n MEET_M,\n HTTPS_PROTOCOL,\n UUID_REG,\n} from '../constants';\n\n/**\n * @class MeetingInfoUtil\n */\nexport default class MeetingInfoUtil {\n static extractDestination(destination, type) {\n let dest = destination;\n\n if (type === _LOCUS_ID_) {\n if (!(destination && destination.url)) {\n throw new ParameterError(\n 'You cannot create a meeting by locus without a locus.url defined'\n );\n }\n dest = destination.url;\n }\n\n return dest;\n }\n\n static getParsedUrl(link) {\n try {\n let parsedUrl = url.parse(link);\n\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as <company>.webex.com/meet/<user> without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = url.parse(`${HTTPS_PROTOCOL}${link}`);\n }\n\n return parsedUrl;\n } catch (error) {\n LoggerProxy.logger.warn(\n `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`\n );\n\n return null;\n }\n }\n\n /**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\n static isMeetingLink(value: string) {\n const parsedUrl = this.getParsedUrl(value);\n let hostNameBool;\n let pathNameBool;\n if (parsedUrl) {\n hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n pathNameBool =\n parsedUrl.pathname &&\n (parsedUrl.pathname.includes(`/${MEET}`) ||\n parsedUrl.pathname.includes(`/${MEET_M}`) ||\n parsedUrl.pathname.includes(`/${JOIN}`));\n }\n\n return hostNameBool && pathNameBool;\n }\n\n static isConversationUrl(value, webex) {\n const clusterId = webex.internal.services.getClusterId(value);\n\n if (clusterId) {\n return clusterId.endsWith(CONVERSATION_SERVICE);\n }\n\n return false;\n }\n\n static convertLinkToSip(value) {\n const parsedUrl = this.getParsedUrl(value);\n\n if (!parsedUrl) {\n return null;\n }\n let user;\n\n if (parsedUrl.pathname) {\n const userIndex = parsedUrl.pathname.lastIndexOf('/');\n\n user = parsedUrl.pathname.substring(userIndex + 1);\n }\n if (!user) {\n return null;\n }\n let company;\n\n if (parsedUrl.hostname) {\n const companyIndex = parsedUrl.hostname.lastIndexOf(`.${WEBEX_DOT_COM}`);\n\n company = parsedUrl.hostname.substring(0, companyIndex).replace(WWW_DOT, '');\n }\n if (!company) {\n return null;\n }\n\n return `${user}@${company}.${WEBEX_DOT_COM}`;\n }\n\n static isSipUri(sipString) {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n const sipUri = DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n\n return sipUri;\n }\n\n static isPhoneNumber(phoneNumber) {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n }\n\n static getHydraId(destination) {\n const {type, id, cluster} = deconstructHydraId(destination);\n\n if (id && UUID_REG.test(id)) {\n if (type === _ROOM_) {\n return {room: true, destination: id, cluster};\n }\n if (type === _PEOPLE_) {\n return {people: true, destination: id, cluster};\n }\n\n return {};\n }\n\n return {};\n }\n\n static getSipUriFromHydraPersonId(destination, webex) {\n return webex.people\n .get(destination)\n .then((res) => {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `\n );\n throw err;\n });\n }\n\n static async generateOptions(from) {\n const {destination, type, webex} = from;\n\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n const hydraId = this.getHydraId(destination);\n\n if (this.isMeetingLink(destination)) {\n LoggerProxy.logger.warn(\n 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'\n );\n\n options.type = _MEETING_LINK_;\n options.destination = destination;\n } else if (this.isSipUri(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (this.isPhoneNumber(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (this.isConversationUrl(destination, webex)) {\n options.type = _CONVERSATION_URL_;\n options.destination = destination;\n } else if (hydraId.people) {\n options.type = _SIP_URI_;\n\n return this.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n\n return Promise.resolve(options);\n });\n } else if (hydraId.room) {\n options.type = _CONVERSATION_URL_;\n try {\n await webex.internal.services.waitForCatalog('postauth');\n\n const serviceUrl = webex.internal.services.getServiceUrlFromClusterId(\n {\n cluster: hydraId.cluster,\n },\n webex\n );\n\n options.destination = hydraId.destination\n ? `${serviceUrl}/conversations/${hydraId.destination}`\n : serviceUrl;\n } catch (e) {\n LoggerProxy.logger.error(`Meeting-info:util#generateOptions --> ${e}`);\n throw e;\n }\n } else {\n throw new ParameterError(\n 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.'\n );\n }\n\n return Promise.resolve(options);\n }\n\n /**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {String} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} value ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\n static getResourceUrl(type: string, value: any) {\n let resource = `/${LOCI}/${MEETINGINFO}`;\n let method = HTTP_VERBS.GET;\n let uri = null;\n\n switch (type) {\n case _SIP_URI_:\n case _PERSONAL_ROOM_:\n case _MEETING_ID_:\n resource = `/${LOCI}/${MEETINGINFO}/${encodeURIComponent(\n value\n )}?${TYPE}=${type}&${USE_URI_LOOKUP_FALSE}`;\n break;\n case _CONVERSATION_URL_:\n method = HTTP_VERBS.PUT;\n break;\n case _LOCUS_ID_:\n uri = `${value}/${MEETINGINFO}`;\n method = HTTP_VERBS.PUT;\n break;\n case _MEETING_LINK_:\n resource = `$/${LOCI}/${MEETINGINFO}/${btoa(\n value\n )}?${TYPE}=${_MEETING_LINK_}&${USE_URI_LOOKUP_FALSE}`;\n break;\n default:\n }\n\n return {\n uri,\n resource,\n method,\n };\n }\n\n static getRequestParams(resourceOptions, type, value, api) {\n let requestParams: any = {\n method: resourceOptions.method,\n api,\n resource: resourceOptions.resource,\n };\n\n if (resourceOptions.method === HTTP_VERBS.GET) {\n // for handling URL redirections\n requestParams.resource = requestParams.resource.concat(`&${ALTERNATE_REDIRECT_TRUE}`);\n } else if (type !== _LOCUS_ID_) {\n // locus id check is a PUT not sure why\n requestParams.resource = requestParams.resource.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n requestParams.body = {\n value,\n lookupType: type,\n };\n } else if (type === _LOCUS_ID_) {\n requestParams = {\n method: resourceOptions.method,\n uri: resourceOptions.uri,\n };\n }\n\n return requestParams;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_url","_interopRequireDefault","require","_btoa","_common","_parameter","_loggerProxy","_constants","MeetingInfoUtil","exports","default","_classCallCheck2","_createClass2","key","value","extractDestination","destination","type","dest","DESTINATION_TYPE","LOCUS_ID","url","ParameterError","getParsedUrl","link","parsedUrl","parse","protocol","concat","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","hostNameBool","pathNameBool","hostname","includes","WEBEX_DOT_COM","pathname","MEET","MEET_M","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","convertLinkToSip","user","userIndex","lastIndexOf","substring","company","companyIndex","replace","WWW_DOT","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","_deconstructHydraId","deconstructHydraId","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","length","catch","err","_generateOptions","_asyncToGenerator2","_regenerator","mark","_callee","from","options","hydraId","serviceUrl","wrap","_callee$","_context","prev","next","abrupt","MEETING_LINK","SIP_URI","CONVERSATION_URL","wasHydraPerson","_promise","resolve","waitForCatalog","getServiceUrlFromClusterId","t0","stop","generateOptions","_x","apply","arguments","getResourceUrl","resource","LOCI","MEETINGINFO","method","HTTP_VERBS","GET","uri","PERSONAL_ROOM","MEETING_ID","encodeURIComponent","TYPE","USE_URI_LOOKUP_FALSE","PUT","btoa","getRequestParams","resourceOptions","api","requestParams","ALTERNATE_REDIRECT_TRUE","body","lookupType"],"sources":["util.ts"],"sourcesContent":["import url from 'url';\n\nimport btoa from 'btoa';\n// @ts-ignore\nimport {deconstructHydraId} from '@webex/common';\n\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {\n DESTINATION_TYPE,\n _PEOPLE_,\n _ROOM_,\n HTTP_VERBS,\n USE_URI_LOOKUP_FALSE,\n TYPE,\n LOCI,\n MEETINGINFO,\n ALTERNATE_REDIRECT_TRUE,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n WWW_DOT,\n JOIN,\n MEET,\n MEET_M,\n HTTPS_PROTOCOL,\n UUID_REG,\n} from '../constants';\n\n/**\n * @class MeetingInfoUtil\n */\nexport default class MeetingInfoUtil {\n static extractDestination(destination, type: DESTINATION_TYPE) {\n let dest = destination;\n\n if (type === DESTINATION_TYPE.LOCUS_ID) {\n if (!(destination && destination.url)) {\n throw new ParameterError(\n 'You cannot create a meeting by locus without a locus.url defined'\n );\n }\n dest = destination.url;\n }\n\n return dest;\n }\n\n static getParsedUrl(link) {\n try {\n let parsedUrl = url.parse(link);\n\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as <company>.webex.com/meet/<user> without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = url.parse(`${HTTPS_PROTOCOL}${link}`);\n }\n\n return parsedUrl;\n } catch (error) {\n LoggerProxy.logger.warn(\n `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`\n );\n\n return null;\n }\n }\n\n /**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\n static isMeetingLink(value: string) {\n const parsedUrl = this.getParsedUrl(value);\n let hostNameBool;\n let pathNameBool;\n if (parsedUrl) {\n hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n pathNameBool =\n parsedUrl.pathname &&\n (parsedUrl.pathname.includes(`/${MEET}`) ||\n parsedUrl.pathname.includes(`/${MEET_M}`) ||\n parsedUrl.pathname.includes(`/${JOIN}`));\n }\n\n return hostNameBool && pathNameBool;\n }\n\n static isConversationUrl(value, webex) {\n const clusterId = webex.internal.services.getClusterId(value);\n\n if (clusterId) {\n return clusterId.endsWith(CONVERSATION_SERVICE);\n }\n\n return false;\n }\n\n static convertLinkToSip(value) {\n const parsedUrl = this.getParsedUrl(value);\n\n if (!parsedUrl) {\n return null;\n }\n let user;\n\n if (parsedUrl.pathname) {\n const userIndex = parsedUrl.pathname.lastIndexOf('/');\n\n user = parsedUrl.pathname.substring(userIndex + 1);\n }\n if (!user) {\n return null;\n }\n let company;\n\n if (parsedUrl.hostname) {\n const companyIndex = parsedUrl.hostname.lastIndexOf(`.${WEBEX_DOT_COM}`);\n\n company = parsedUrl.hostname.substring(0, companyIndex).replace(WWW_DOT, '');\n }\n if (!company) {\n return null;\n }\n\n return `${user}@${company}.${WEBEX_DOT_COM}`;\n }\n\n static isSipUri(sipString) {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n const sipUri = DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n\n return sipUri;\n }\n\n static isPhoneNumber(phoneNumber) {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n }\n\n static getHydraId(destination) {\n const {type, id, cluster} = deconstructHydraId(destination);\n\n if (id && UUID_REG.test(id)) {\n if (type === _ROOM_) {\n return {room: true, destination: id, cluster};\n }\n if (type === _PEOPLE_) {\n return {people: true, destination: id, cluster};\n }\n\n return {};\n }\n\n return {};\n }\n\n static getSipUriFromHydraPersonId(destination, webex) {\n return webex.people\n .get(destination)\n .then((res) => {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `\n );\n throw err;\n });\n }\n\n static async generateOptions(from) {\n const {destination, type, webex} = from;\n\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n const hydraId = this.getHydraId(destination);\n\n if (this.isMeetingLink(destination)) {\n LoggerProxy.logger.warn(\n 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'\n );\n\n options.type = DESTINATION_TYPE.MEETING_LINK;\n options.destination = destination;\n } else if (this.isSipUri(destination)) {\n options.type = DESTINATION_TYPE.SIP_URI;\n options.destination = destination;\n } else if (this.isPhoneNumber(destination)) {\n options.type = DESTINATION_TYPE.SIP_URI;\n options.destination = destination;\n } else if (this.isConversationUrl(destination, webex)) {\n options.type = DESTINATION_TYPE.CONVERSATION_URL;\n options.destination = destination;\n } else if (hydraId.people) {\n options.type = DESTINATION_TYPE.SIP_URI;\n\n return this.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n\n return Promise.resolve(options);\n });\n } else if (hydraId.room) {\n options.type = DESTINATION_TYPE.CONVERSATION_URL;\n try {\n await webex.internal.services.waitForCatalog('postauth');\n\n const serviceUrl = webex.internal.services.getServiceUrlFromClusterId(\n {\n cluster: hydraId.cluster,\n },\n webex\n );\n\n options.destination = hydraId.destination\n ? `${serviceUrl}/conversations/${hydraId.destination}`\n : serviceUrl;\n } catch (e) {\n LoggerProxy.logger.error(`Meeting-info:util#generateOptions --> ${e}`);\n throw e;\n }\n } else {\n throw new ParameterError(\n 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.'\n );\n }\n\n return Promise.resolve(options);\n }\n\n /**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {DESTINATION_TYPE} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} value ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\n static getResourceUrl(type: DESTINATION_TYPE, value: any) {\n let resource = `/${LOCI}/${MEETINGINFO}`;\n let method = HTTP_VERBS.GET;\n let uri = null;\n\n switch (type) {\n case DESTINATION_TYPE.SIP_URI:\n case DESTINATION_TYPE.PERSONAL_ROOM:\n case DESTINATION_TYPE.MEETING_ID:\n resource = `/${LOCI}/${MEETINGINFO}/${encodeURIComponent(\n value\n )}?${TYPE}=${type}&${USE_URI_LOOKUP_FALSE}`;\n break;\n case DESTINATION_TYPE.CONVERSATION_URL:\n method = HTTP_VERBS.PUT;\n break;\n case DESTINATION_TYPE.LOCUS_ID:\n uri = `${value}/${MEETINGINFO}`;\n method = HTTP_VERBS.PUT;\n break;\n case DESTINATION_TYPE.MEETING_LINK:\n resource = `$/${LOCI}/${MEETINGINFO}/${btoa(value)}?${TYPE}=${\n DESTINATION_TYPE.MEETING_LINK\n }&${USE_URI_LOOKUP_FALSE}`;\n break;\n default:\n }\n\n return {\n uri,\n resource,\n method,\n };\n }\n\n static getRequestParams(resourceOptions, type: DESTINATION_TYPE, value, api) {\n let requestParams: any = {\n method: resourceOptions.method,\n api,\n resource: resourceOptions.resource,\n };\n\n if (resourceOptions.method === HTTP_VERBS.GET) {\n // for handling URL redirections\n requestParams.resource = requestParams.resource.concat(`&${ALTERNATE_REDIRECT_TRUE}`);\n } else if (type !== DESTINATION_TYPE.LOCUS_ID) {\n // locus id check is a PUT not sure why\n requestParams.resource = requestParams.resource.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n requestParams.body = {\n value,\n lookupType: type,\n };\n } else if (type === DESTINATION_TYPE.LOCUS_ID) {\n requestParams = {\n method: resourceOptions.method,\n uri: resourceOptions.uri,\n };\n }\n\n return requestParams;\n }\n}\n"],"mappings":"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"}
|
|
@@ -140,7 +140,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
140
140
|
case 0:
|
|
141
141
|
type = from.type, webex = from.webex;
|
|
142
142
|
destination = from.destination;
|
|
143
|
-
if (!(type === _constants.
|
|
143
|
+
if (!(type === _constants.DESTINATION_TYPE.PERSONAL_ROOM)) {
|
|
144
144
|
_context.next = 15;
|
|
145
145
|
break;
|
|
146
146
|
}
|
|
@@ -193,7 +193,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
193
193
|
break;
|
|
194
194
|
}
|
|
195
195
|
_loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
|
|
196
|
-
options.type = _constants.
|
|
196
|
+
options.type = _constants.DESTINATION_TYPE.MEETING_LINK;
|
|
197
197
|
options.destination = destination;
|
|
198
198
|
_context.next = 52;
|
|
199
199
|
break;
|
|
@@ -202,7 +202,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
202
202
|
_context.next = 30;
|
|
203
203
|
break;
|
|
204
204
|
}
|
|
205
|
-
options.type = _constants.
|
|
205
|
+
options.type = _constants.DESTINATION_TYPE.SIP_URI;
|
|
206
206
|
options.destination = destination;
|
|
207
207
|
_context.next = 52;
|
|
208
208
|
break;
|
|
@@ -211,7 +211,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
211
211
|
_context.next = 35;
|
|
212
212
|
break;
|
|
213
213
|
}
|
|
214
|
-
options.type = _constants.
|
|
214
|
+
options.type = _constants.DESTINATION_TYPE.SIP_URI;
|
|
215
215
|
options.destination = destination;
|
|
216
216
|
_context.next = 52;
|
|
217
217
|
break;
|
|
@@ -220,7 +220,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
220
220
|
_context.next = 40;
|
|
221
221
|
break;
|
|
222
222
|
}
|
|
223
|
-
options.type = _constants.
|
|
223
|
+
options.type = _constants.DESTINATION_TYPE.CONVERSATION_URL;
|
|
224
224
|
options.destination = destination;
|
|
225
225
|
_context.next = 52;
|
|
226
226
|
break;
|
|
@@ -229,7 +229,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
229
229
|
_context.next = 45;
|
|
230
230
|
break;
|
|
231
231
|
}
|
|
232
|
-
options.type = _constants.
|
|
232
|
+
options.type = _constants.DESTINATION_TYPE.SIP_URI;
|
|
233
233
|
return _context.abrupt("return", this.getSipUriFromHydraPersonId(hydraId && hydraId.destination, webex).then(function (res) {
|
|
234
234
|
options.destination = res;
|
|
235
235
|
|
|
@@ -266,7 +266,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
266
266
|
/**
|
|
267
267
|
* Helper function to build up a correct locus url depending on the value passed
|
|
268
268
|
* @param {Object} options type and value to fetch meeting info
|
|
269
|
-
* @param {
|
|
269
|
+
* @param {DESTINATION_TYPE} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
|
|
270
270
|
* @param {String} options.installedOrgID org ID of user's machine
|
|
271
271
|
* @param {Object} options.destination ?? value.value
|
|
272
272
|
* @returns {Object} returns an object with {resource, method}
|
|
@@ -284,20 +284,20 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
284
284
|
extraParams = options.extraParams;
|
|
285
285
|
var body = _objectSpread(_objectSpread({}, _constants.DEFAULT_MEETING_INFO_REQUEST_BODY), extraParams);
|
|
286
286
|
switch (type) {
|
|
287
|
-
case _constants.
|
|
287
|
+
case _constants.DESTINATION_TYPE.SIP_URI:
|
|
288
288
|
body.sipUrl = destination;
|
|
289
289
|
break;
|
|
290
|
-
case _constants.
|
|
290
|
+
case _constants.DESTINATION_TYPE.PERSONAL_ROOM:
|
|
291
291
|
body.userId = destination.userId;
|
|
292
292
|
body.orgId = destination.orgId;
|
|
293
293
|
break;
|
|
294
|
-
case _constants.
|
|
294
|
+
case _constants.DESTINATION_TYPE.MEETING_ID:
|
|
295
295
|
body.meetingKey = destination;
|
|
296
296
|
break;
|
|
297
|
-
case _constants.
|
|
297
|
+
case _constants.DESTINATION_TYPE.CONVERSATION_URL:
|
|
298
298
|
body.conversationUrl = destination;
|
|
299
299
|
break;
|
|
300
|
-
case _constants.
|
|
300
|
+
case _constants.DESTINATION_TYPE.LOCUS_ID:
|
|
301
301
|
// use meetingID for the completer meeting info for the already started meeting
|
|
302
302
|
if ((_destination$info = destination.info) !== null && _destination$info !== void 0 && _destination$info.webExMeetingId) {
|
|
303
303
|
body.meetingKey = destination.info.webExMeetingId;
|
|
@@ -305,10 +305,10 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
305
305
|
body.sipUrl = destination.info.sipUri;
|
|
306
306
|
}
|
|
307
307
|
break;
|
|
308
|
-
case _constants.
|
|
308
|
+
case _constants.DESTINATION_TYPE.MEETING_LINK:
|
|
309
309
|
body.meetingUrl = destination;
|
|
310
310
|
break;
|
|
311
|
-
case _constants.
|
|
311
|
+
case _constants.DESTINATION_TYPE.MEETING_UUID:
|
|
312
312
|
{
|
|
313
313
|
body.meetingUUID = destination;
|
|
314
314
|
break;
|
|
@@ -363,10 +363,10 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
|
|
|
363
363
|
destination = options.destination;
|
|
364
364
|
var preferredWebexSite = null;
|
|
365
365
|
switch (type) {
|
|
366
|
-
case _constants.
|
|
366
|
+
case _constants.DESTINATION_TYPE.SIP_URI:
|
|
367
367
|
preferredWebexSite = this.getWebexSite(destination);
|
|
368
368
|
break;
|
|
369
|
-
case _constants.
|
|
369
|
+
case _constants.DESTINATION_TYPE.LOCUS_ID:
|
|
370
370
|
preferredWebexSite = (_destination$info3 = destination.info) === null || _destination$info3 === void 0 ? void 0 : _destination$info3.webExSite;
|
|
371
371
|
break;
|
|
372
372
|
default:
|