@webex/calling 3.10.0-next.8 → 3.10.0-wxc-disconnect.1

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.
Files changed (96) hide show
  1. package/dist/CallHistory/CallHistory.js +41 -42
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +5 -120
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallSettings/UcmBackendConnector.js +6 -6
  6. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  7. package/dist/CallSettings/UcmBackendConnector.test.js +1 -2
  8. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  9. package/dist/CallSettings/WxCallBackendConnector.js +43 -38
  10. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/WxCallBackendConnector.test.js +1 -4
  12. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  13. package/dist/CallingClient/CallingClient.js +207 -161
  14. package/dist/CallingClient/CallingClient.js.map +1 -1
  15. package/dist/CallingClient/CallingClient.test.js +290 -152
  16. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  17. package/dist/CallingClient/calling/call.js +53 -50
  18. package/dist/CallingClient/calling/call.js.map +1 -1
  19. package/dist/CallingClient/calling/call.test.js +51 -93
  20. package/dist/CallingClient/calling/call.test.js.map +1 -1
  21. package/dist/CallingClient/calling/callManager.test.js +1 -1
  22. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  23. package/dist/CallingClient/registration/register.js +4 -5
  24. package/dist/CallingClient/registration/register.js.map +1 -1
  25. package/dist/CallingClient/registration/webWorker.js +3 -3
  26. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  27. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  28. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  29. package/dist/Contacts/ContactsClient.js +45 -39
  30. package/dist/Contacts/ContactsClient.js.map +1 -1
  31. package/dist/Contacts/ContactsClient.test.js +3 -4
  32. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  33. package/dist/Events/impl/index.js +1 -1
  34. package/dist/Events/impl/index.js.map +1 -1
  35. package/dist/Logger/index.js +3 -3
  36. package/dist/Logger/index.js.map +1 -1
  37. package/dist/Logger/index.test.js +1 -1
  38. package/dist/Logger/index.test.js.map +1 -1
  39. package/dist/SDKConnector/types.js.map +1 -1
  40. package/dist/Voicemail/BroadworksBackendConnector.js +54 -47
  41. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  42. package/dist/Voicemail/BroadworksBackendConnector.test.js +2 -10
  43. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  44. package/dist/Voicemail/UcmBackendConnector.js +32 -29
  45. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  46. package/dist/Voicemail/Voicemail.js +102 -77
  47. package/dist/Voicemail/Voicemail.js.map +1 -1
  48. package/dist/Voicemail/WxCallBackendConnector.js +59 -46
  49. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  50. package/dist/Voicemail/WxCallBackendConnector.test.js +18 -44
  51. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  52. package/dist/common/Utils.js +2 -2
  53. package/dist/common/Utils.js.map +1 -1
  54. package/dist/common/Utils.test.js +8 -4
  55. package/dist/common/Utils.test.js.map +1 -1
  56. package/dist/common/testUtil.js +1 -2
  57. package/dist/common/testUtil.js.map +1 -1
  58. package/dist/module/CallHistory/CallHistory.js +11 -20
  59. package/dist/module/CallSettings/UcmBackendConnector.js +2 -1
  60. package/dist/module/CallSettings/WxCallBackendConnector.js +15 -10
  61. package/dist/module/CallingClient/CallingClient.js +123 -83
  62. package/dist/module/CallingClient/calling/call.js +23 -17
  63. package/dist/module/CallingClient/registration/register.js +3 -3
  64. package/dist/module/CallingClient/registration/webWorker.js +2 -2
  65. package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
  66. package/dist/module/Contacts/ContactsClient.js +25 -19
  67. package/dist/module/Events/impl/index.js +1 -1
  68. package/dist/module/Logger/index.js +2 -2
  69. package/dist/module/Voicemail/BroadworksBackendConnector.js +18 -10
  70. package/dist/module/Voicemail/UcmBackendConnector.js +11 -7
  71. package/dist/module/Voicemail/Voicemail.js +68 -42
  72. package/dist/module/Voicemail/WxCallBackendConnector.js +28 -14
  73. package/dist/module/common/Utils.js +2 -2
  74. package/dist/module/common/testUtil.js +0 -1
  75. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  76. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  77. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  78. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  79. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  80. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  81. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  82. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  83. package/dist/types/Contacts/ContactsClient.d.ts +0 -1
  84. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  85. package/dist/types/Logger/index.d.ts +2 -1
  86. package/dist/types/Logger/index.d.ts.map +1 -1
  87. package/dist/types/SDKConnector/types.d.ts +0 -10
  88. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  89. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  90. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  91. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  92. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  93. package/dist/types/common/Utils.d.ts.map +1 -1
  94. package/dist/types/common/testUtil.d.ts +0 -1
  95. package/dist/types/common/testUtil.d.ts.map +1 -1
  96. package/package.json +4 -4
@@ -53,7 +53,6 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
53
53
  * @ignore
54
54
  */
55
55
  function CallHistory(webex, logger) {
56
- var _this$webex$internal$;
57
56
  var _this;
58
57
  (0, _classCallCheck2.default)(this, CallHistory);
59
58
  _this = _super.call(this);
@@ -125,7 +124,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
125
124
  _SDKConnector.default.setWebex(webex);
126
125
  }
127
126
  _this.webex = _this.sdkConnector.getWebex();
128
- _this.janusUrl = ((_this$webex$internal$ = _this.webex.internal.services._serviceUrls) === null || _this$webex$internal$ === void 0 ? void 0 : _this$webex$internal$.janus) || _this.webex.internal.services.get(_this.webex.internal.services._activeServices.janus);
127
+ _this.janusUrl = _this.webex.internal.services._serviceUrls.janus;
129
128
  _this.registerSessionsListener();
130
129
  _Logger.default.setLogger(logger.level, _constants.CALL_HISTORY_FILE);
131
130
  return _this;
@@ -147,18 +146,18 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
147
146
  sort,
148
147
  sortBy,
149
148
  date,
150
- callingBackend,
151
149
  sortByParam,
152
150
  sortParam,
153
- sharedSessionsParam,
154
151
  url,
155
152
  _janusResponse$header,
156
153
  janusResponse,
154
+ callingBackend,
157
155
  hasCucmDN,
158
156
  _ucmLinesResponse$dat,
159
157
  ucmLinesResponse,
160
158
  ucmLinesData,
161
159
  responseDetails,
160
+ extendedError,
162
161
  errorInfo,
163
162
  errorStatus,
164
163
  _args4 = arguments;
@@ -174,7 +173,6 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
174
173
  2. Calculating the fromDate by deducting the NUMBER_OF_DAYS with the current date
175
174
  */
176
175
  date = new Date();
177
- callingBackend = (0, _Utils.getCallingBackEnd)(this.webex);
178
176
  date.setDate(date.getDate() - days);
179
177
  this.fromDate = date.toISOString();
180
178
  sortByParam = (0, _values.default)(_types.SORT_BY).includes(sortBy) ? sortBy : _types.SORT_BY.DEFAULT;
@@ -182,19 +180,15 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
182
180
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with days=").concat(days, ", limit=").concat(limit, ", sort=").concat(sortParam, ", sortBy=").concat(sortByParam), this.loggerContext);
183
181
  _Logger.default.info("Janus API URL: ".concat(this.janusUrl), this.loggerContext);
184
182
  _Logger.default.info("Call history from date : ".concat(this.fromDate), this.loggerContext);
185
-
186
- // Add includeSharedSessions=true parameter for WXC backend to fetch calls with sessionType "WEBEXCALLING_SHARED"
187
- sharedSessionsParam = callingBackend === _types.CALLING_BACKEND.WXC ? '&includeSharedSessions=true' : '';
188
- _Logger.default.info("Fetching call history for ".concat(callingBackend, " backend").concat(callingBackend === _types.CALLING_BACKEND.WXC ? ' with shared sessions' : ''), this.loggerContext);
189
- url = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS).concat(_constants.FROM_DATE, "=").concat(this.fromDate, "&limit=").concat(limit, "&includeNewSessionTypes=true&sort=").concat(sortParam).concat(sharedSessionsParam);
190
- _context4.prev = 16;
191
- _context4.next = 19;
183
+ url = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS).concat(_constants.FROM_DATE, "=").concat(this.fromDate, "&limit=").concat(limit, "&includeNewSessionTypes=true&sort=").concat(sortParam);
184
+ _context4.prev = 13;
185
+ _context4.next = 16;
192
186
  return this.webex.request({
193
187
  uri: "".concat(url),
194
188
  method: _types.HTTP_METHODS.GET,
195
189
  service: _types.ALLOWED_SERVICES.JANUS
196
190
  });
197
- case 19:
191
+ case 16:
198
192
  janusResponse = _context4.sent;
199
193
  _Logger.default.log("Response trackingId: ".concat(janusResponse === null || janusResponse === void 0 ? void 0 : (_janusResponse$header = janusResponse.headers) === null || _janusResponse$header === void 0 ? void 0 : _janusResponse$header.trackingid), this.loggerContext);
200
194
  this.userSessions = janusResponse.body;
@@ -210,12 +204,13 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
210
204
  }
211
205
  }
212
206
  // Check the calling backend
207
+ callingBackend = (0, _Utils.getCallingBackEnd)(this.webex);
213
208
  if (!(callingBackend === _types.CALLING_BACKEND.UCM)) {
214
- _context4.next = 31;
209
+ _context4.next = 29;
215
210
  break;
216
211
  }
217
212
  if (!(this.userSessions[_constants2.USER_SESSIONS] && this.userSessions[_constants2.USER_SESSIONS].length > 0)) {
218
- _context4.next = 31;
213
+ _context4.next = 29;
219
214
  break;
220
215
  }
221
216
  // Check if cucmDN exists and is valid in any of the userSessions
@@ -223,12 +218,12 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
223
218
  return session.self.cucmDN && session.self.cucmDN.length > 0;
224
219
  }); // If any user session has cucmDN, proceed to fetch line data
225
220
  if (!hasCucmDN) {
226
- _context4.next = 31;
221
+ _context4.next = 29;
227
222
  break;
228
223
  }
229
- _context4.next = 29;
224
+ _context4.next = 27;
230
225
  return this.fetchUCMLinesData();
231
- case 29:
226
+ case 27:
232
227
  ucmLinesResponse = _context4.sent;
233
228
  // Check if the Lines API response was successful
234
229
  if (ucmLinesResponse.statusCode === 200 && (_ucmLinesResponse$dat = ucmLinesResponse.data.lines) !== null && _ucmLinesResponse$dat !== void 0 && _ucmLinesResponse$dat.devices) {
@@ -246,7 +241,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
246
241
  }
247
242
  });
248
243
  }
249
- case 31:
244
+ case 29:
250
245
  responseDetails = {
251
246
  statusCode: this.userSessions[_constants2.STATUS_CODE],
252
247
  data: {
@@ -256,24 +251,25 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
256
251
  };
257
252
  _Logger.default.log("Successfully retrieved call history data with ".concat(this.userSessions[_constants2.USER_SESSIONS].length, " records"), this.loggerContext);
258
253
  return _context4.abrupt("return", responseDetails);
259
- case 36:
260
- _context4.prev = 36;
261
- _context4.t0 = _context4["catch"](16);
262
- _Logger.default.error("Failed to get call history: ".concat((0, _stringify.default)(_context4.t0)), {
254
+ case 34:
255
+ _context4.prev = 34;
256
+ _context4.t0 = _context4["catch"](13);
257
+ extendedError = new Error("Failed to get call history: ".concat(_context4.t0));
258
+ _Logger.default.error(extendedError, {
263
259
  file: _constants.CALL_HISTORY_FILE,
264
260
  method: _constants.METHODS.GET_CALL_HISTORY_DATA
265
261
  });
266
- _context4.next = 41;
262
+ _context4.next = 40;
267
263
  return (0, _Utils.uploadLogs)();
268
- case 41:
264
+ case 40:
269
265
  errorInfo = _context4.t0;
270
266
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, this.loggerContext);
271
267
  return _context4.abrupt("return", errorStatus);
272
- case 44:
268
+ case 43:
273
269
  case "end":
274
270
  return _context4.stop();
275
271
  }
276
- }, _callee4, this, [[16, 36]]);
272
+ }, _callee4, this, [[13, 34]]);
277
273
  }));
278
274
  function getCallHistoryData() {
279
275
  return _getCallHistoryData.apply(this, arguments);
@@ -290,7 +286,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
290
286
  key: "updateMissedCalls",
291
287
  value: (function () {
292
288
  var _updateMissedCalls = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(endTimeSessionIds) {
293
- var loggerContext, santizedSessionIds, requestBody, _response$headers, updateMissedCallContentUrl, response, data, responseDetails, errorInfo, errorStatus;
289
+ var loggerContext, santizedSessionIds, requestBody, _response$headers, updateMissedCallContentUrl, response, data, responseDetails, extendedError, errorInfo, errorStatus;
294
290
  return _regenerator.default.wrap(function _callee5$(_context5) {
295
291
  while (1) switch (_context5.prev = _context5.next) {
296
292
  case 0:
@@ -353,20 +349,21 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
353
349
  case 32:
354
350
  _context5.prev = 32;
355
351
  _context5.t9 = _context5["catch"](4);
356
- _Logger.default.error("Failed to update missed calls: ".concat((0, _stringify.default)(_context5.t9)), {
352
+ extendedError = new Error("Failed to update missed calls: ".concat(_context5.t9));
353
+ _Logger.default.error(extendedError, {
357
354
  file: _constants.CALL_HISTORY_FILE,
358
355
  method: _constants.METHODS.UPDATE_MISSED_CALLS
359
356
  });
360
- _context5.next = 37;
357
+ _context5.next = 38;
361
358
  return (0, _Utils.uploadLogs)();
362
- case 37:
359
+ case 38:
363
360
  // Catch the 401 error from try block, return the error object to user
364
361
  errorInfo = {
365
362
  statusCode: _context5.t9 instanceof Error ? Number(_context5.t9.message) : ''
366
363
  };
367
364
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
368
365
  return _context5.abrupt("return", errorStatus);
369
- case 40:
366
+ case 41:
370
367
  case "end":
371
368
  return _context5.stop();
372
369
  }
@@ -386,7 +383,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
386
383
  key: "fetchUCMLinesData",
387
384
  value: (function () {
388
385
  var _fetchUCMLinesData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
389
- var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, _response$headers2, response, ucmLineDetails, errorInfo, errorStatus;
386
+ var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, _response$headers2, response, ucmLineDetails, extendedError, errorInfo, errorStatus;
390
387
  return _regenerator.default.wrap(function _callee6$(_context6) {
391
388
  while (1) switch (_context6.prev = _context6.next) {
392
389
  case 0:
@@ -420,17 +417,18 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
420
417
  case 16:
421
418
  _context6.prev = 16;
422
419
  _context6.t0 = _context6["catch"](6);
423
- _Logger.default.error("Failed to fetch UCM lines data: ".concat((0, _stringify.default)(_context6.t0)), {
420
+ extendedError = new Error("Failed to fetch UCM lines data: ".concat(_context6.t0));
421
+ _Logger.default.error(extendedError, {
424
422
  file: _constants.CALL_HISTORY_FILE,
425
423
  method: _constants.METHODS.FETCH_UCM_LINES_DATA
426
424
  });
427
- _context6.next = 21;
425
+ _context6.next = 22;
428
426
  return (0, _Utils.uploadLogs)();
429
- case 21:
427
+ case 22:
430
428
  errorInfo = _context6.t0;
431
429
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
432
430
  return _context6.abrupt("return", errorStatus);
433
- case 24:
431
+ case 25:
434
432
  case "end":
435
433
  return _context6.stop();
436
434
  }
@@ -451,7 +449,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
451
449
  key: "deleteCallHistoryRecords",
452
450
  value: (function () {
453
451
  var _deleteCallHistoryRecords = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(deleteSessionIds) {
454
- var loggerContext, invalidSessions, invalidSessionIds, santizedSessionIds, deleteRequestBody, _response$headers3, deleteCallHistoryRecordContentUrl, response, data, responseDetails, errorInfo, errorStatus;
452
+ var loggerContext, invalidSessions, invalidSessionIds, santizedSessionIds, deleteRequestBody, _response$headers3, deleteCallHistoryRecordContentUrl, response, data, responseDetails, extendedError, errorInfo, errorStatus;
455
453
  return _regenerator.default.wrap(function _callee7$(_context7) {
456
454
  while (1) switch (_context7.prev = _context7.next) {
457
455
  case 0:
@@ -534,20 +532,21 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
534
532
  case 36:
535
533
  _context7.prev = 36;
536
534
  _context7.t9 = _context7["catch"](9);
537
- _Logger.default.error("Failed to delete call history records: ".concat((0, _stringify.default)(_context7.t9)), {
535
+ extendedError = new Error("Failed to delete call history records: ".concat(_context7.t9));
536
+ _Logger.default.error(extendedError, {
538
537
  file: _constants.CALL_HISTORY_FILE,
539
538
  method: _constants.METHODS.DELETE_CALL_HISTORY_RECORDS
540
539
  });
541
- _context7.next = 41;
540
+ _context7.next = 42;
542
541
  return (0, _Utils.uploadLogs)();
543
- case 41:
542
+ case 42:
544
543
  // Catch the 401 error from try block, return the error object to user
545
544
  errorInfo = {
546
545
  statusCode: _context7.t9 instanceof Error ? Number(_context7.t9.message) : ''
547
546
  };
548
547
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
549
548
  return _context7.abrupt("return", errorStatus);
550
- case 44:
549
+ case 45:
551
550
  case "end":
552
551
  return _context7.stop();
553
552
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Logger","_Utils","_constants","_constants2","_types2","_impl","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","_createSuper","_isNativeReflectConstruct","_getPrototypeOf2","s","constructor","_Reflect$construct","_possibleConstructorReturn2","Boolean","prototype","valueOf","call","CallHistory","exports","_Eventing","_inherits2","_super","webex","logger","_this$webex$internal$","_this","_classCallCheck2","_assertThisInitialized2","file","CALL_HISTORY_FILE","method","METHODS","GET_CALL_HISTORY_DATA","_ref","_asyncToGenerator2","_regenerator","mark","_callee","event","wrap","_callee$","_context","prev","next","data","userSessions","emit","COMMON_EVENT_KEYS","CALL_HISTORY_USER_SESSION_INFO","stop","_x","_ref2","_callee2","_callee2$","_context2","userReadSessions","CALL_HISTORY_USER_VIEWED_SESSIONS","_x2","_ref3","_callee3","_callee3$","_context3","deletedSessions","CALL_HISTORY_USER_SESSIONS_DELETED","_x3","sdkConnector","SDKConnector","getWebex","setWebex","janusUrl","internal","services","_serviceUrls","janus","get","_activeServices","registerSessionsListener","log","setLogger","level","_createClass2","key","value","_getCallHistoryData","_callee4","days","limit","sort","sortBy","date","callingBackend","sortByParam","sortParam","sharedSessionsParam","url","_janusResponse$header","janusResponse","hasCucmDN","_ucmLinesResponse$dat","ucmLinesResponse","ucmLinesData","responseDetails","errorInfo","errorStatus","_args4","_callee4$","_context4","undefined","NUMBER_OF_DAYS","LIMIT","SORT","DEFAULT","SORT_BY","Date","getCallingBackEnd","setDate","getDate","fromDate","toISOString","_values","includes","info","concat","METHOD_START_MESSAGE","loggerContext","CALLING_BACKEND","WXC","HISTORY","USER_SESSIONS","FROM_DATE","request","uri","HTTP_METHODS","GET","service","ALLOWED_SERVICES","JANUS","sent","headers","trackingid","body","START_TIME","DESC","element","compareElement","getTime","ASC","UCM","some","session","self","cucmDN","fetchUCMLinesData","statusCode","lines","devices","device","line","dnorpattern","ucmLineNumber","index","STATUS_CODE","message","SUCCESS_MESSAGE","abrupt","t0","error","_stringify","uploadLogs","serviceErrorCodeHandler","getCallHistoryData","_updateMissedCalls","_callee5","endTimeSessionIds","santizedSessionIds","requestBody","_response$headers","updateMissedCallContentUrl","response","_callee5$","_context5","UPDATE_MISSED_CALLS","map","endTime","UPDATE_MISSED_CALLS_ENDPOINT","fetch","t1","t2","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","t8","ok","Error","status","json","readStatusMessage","SET_READ_STATE_SUCCESS_MESSAGE","t9","Number","updateMissedCalls","_x4","_fetchUCMLinesData","_callee6","vgEndpoint","userId","orgId","linesURIForUCM","_response$headers2","ucmLineDetails","_callee6$","_context6","FETCH_UCM_LINES_DATA","getVgActionEndpoint","VERSION_1","UNIFIED_COMMUNICATIONS","CONFIG","PEOPLE","LINES","ORG_ID","_deleteCallHistoryRecords","_callee7","deleteSessionIds","invalidSessions","invalidSessionIds","deleteRequestBody","_response$headers3","deleteCallHistoryRecordContentUrl","_callee7$","_context7","DELETE_CALL_HISTORY_RECORDS","_isNan","sessionId","join","deleteStatusMessage","SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE","FAILURE_MESSAGE","DELETE_CALL_HISTORY_RECORDS_ENDPOINT","SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE","deleteCallHistoryRecords","_x5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","handleSessionEvents","CALL_SESSION_EVENT_LEGACY","CALL_SESSION_EVENT_VIEWED","handleUserReadSessionEvents","CALL_SESSION_EVENT_DELETED","handleUserSessionsDeletedEvents","Eventing","createCallHistoryClient"],"sources":["CallHistory.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable no-underscore-dangle */\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n SORT,\n SORT_BY,\n CALLING_BACKEND,\n} from '../common/types';\nimport {\n ICallHistory,\n JanusResponseEvent,\n LoggerInterface,\n UpdateMissedCallsResponse,\n UCMLinesResponse,\n DeleteCallHistoryRecordsResponse,\n} from './types';\nimport log from '../Logger';\nimport {\n serviceErrorCodeHandler,\n getVgActionEndpoint,\n getCallingBackEnd,\n uploadLogs,\n} from '../common/Utils';\nimport {\n APPLICATION_JSON,\n CALL_HISTORY_FILE,\n CONTENT_TYPE,\n FROM_DATE,\n HISTORY,\n LIMIT,\n NUMBER_OF_DAYS,\n UPDATE_MISSED_CALLS_ENDPOINT,\n SET_READ_STATE_SUCCESS_MESSAGE,\n VERSION_1,\n UNIFIED_COMMUNICATIONS,\n CONFIG,\n PEOPLE,\n LINES,\n ORG_ID,\n DELETE_CALL_HISTORY_RECORDS_ENDPOINT,\n SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE,\n SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE,\n METHODS,\n} from './constants';\nimport {\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n USER_SESSIONS,\n} from '../common/constants';\nimport {\n COMMON_EVENT_KEYS,\n CallHistoryEventTypes,\n CallSessionEvent,\n MOBIUS_EVENT_KEYS,\n UserSession,\n EndTimeSessionId,\n CallSessionViewedEvent,\n SanitizedEndTimeAndSessionId,\n UCMLinesApiResponse,\n CallSessionDeletedEvent,\n} from '../Events/types';\nimport {Eventing} from '../Events/impl';\n/**\n * `CallHistory` module is designed to facilitate the retrieval of Call History Records by providing a set of APIs.\n *\n * This code snippet demonstrates how to create an instance of `CallHistory` using webex and logger.\n *\n * @example\n * ```javascript\n * const callHistory = createCallHistoryClient(webex, logger);\n * ```\n */\nexport class CallHistory extends Eventing<CallHistoryEventTypes> implements ICallHistory {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private janusUrl = '';\n\n private fromDate = '';\n\n private loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n };\n\n private userSessions: UserSession[] | undefined;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n super();\n this.sdkConnector = SDKConnector;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.janusUrl =\n this.webex.internal.services._serviceUrls?.janus ||\n this.webex.internal.services.get(this.webex.internal.services._activeServices.janus);\n this.registerSessionsListener();\n log.setLogger(logger.level, CALL_HISTORY_FILE);\n }\n\n /**\n * Function to display the Janus API response.\n * @param days - Number of days to fetch the call history data.\n * @param limit - Number of records to be fetched.\n * @param sort - Sort the records in ascending or descending order.\n * @param sortBy - Sort the records by start time or end time.\n */\n public async getCallHistoryData(\n days: number = NUMBER_OF_DAYS,\n limit: number = LIMIT,\n sort: SORT = SORT.DEFAULT,\n sortBy: SORT_BY = SORT_BY.DEFAULT\n ): Promise<JanusResponseEvent> {\n /*\n 1. Mandatory field for Janus API - fromDate\n 2. Calculating the fromDate by deducting the NUMBER_OF_DAYS with the current date\n */\n const date = new Date();\n const callingBackend = getCallingBackEnd(this.webex);\n date.setDate(date.getDate() - days);\n this.fromDate = date.toISOString();\n const sortByParam = Object.values(SORT_BY).includes(sortBy) ? sortBy : SORT_BY.DEFAULT;\n const sortParam = Object.values(SORT).includes(sort) ? sort : SORT.DEFAULT;\n\n log.info(\n `${METHOD_START_MESSAGE} with days=${days}, limit=${limit}, sort=${sortParam}, sortBy=${sortByParam}`,\n this.loggerContext\n );\n\n log.info(`Janus API URL: ${this.janusUrl}`, this.loggerContext);\n log.info(`Call history from date : ${this.fromDate}`, this.loggerContext);\n\n // Add includeSharedSessions=true parameter for WXC backend to fetch calls with sessionType \"WEBEXCALLING_SHARED\"\n const sharedSessionsParam =\n callingBackend === CALLING_BACKEND.WXC ? '&includeSharedSessions=true' : '';\n log.info(\n `Fetching call history for ${callingBackend} backend${\n callingBackend === CALLING_BACKEND.WXC ? ' with shared sessions' : ''\n }`,\n this.loggerContext\n );\n const url = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}${FROM_DATE}=${this.fromDate}&limit=${limit}&includeNewSessionTypes=true&sort=${sortParam}${sharedSessionsParam}`;\n\n try {\n const janusResponse = <WebexRequestPayload>await this.webex.request({\n uri: `${url}`,\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.JANUS,\n });\n\n log.log(`Response trackingId: ${janusResponse?.headers?.trackingid}`, this.loggerContext);\n\n this.userSessions = janusResponse.body as UserSession[];\n if (sortByParam === SORT_BY.START_TIME) {\n if (sortParam === SORT.DESC) {\n this.userSessions[USER_SESSIONS].sort(\n (element: Date, compareElement: Date) =>\n new Date(compareElement[sortByParam]).getTime() -\n new Date(element[sortByParam]).getTime()\n );\n } else if (sortParam === SORT.ASC) {\n this.userSessions[USER_SESSIONS].sort(\n (element: Date, compareElement: Date) =>\n new Date(element[sortByParam]).getTime() -\n new Date(compareElement[sortByParam]).getTime()\n );\n }\n }\n // Check the calling backend\n if (callingBackend === CALLING_BACKEND.UCM) {\n // Check if userSessions exist and the length is greater than 0\n if (this.userSessions[USER_SESSIONS] && this.userSessions[USER_SESSIONS].length > 0) {\n // Check if cucmDN exists and is valid in any of the userSessions\n const hasCucmDN = this.userSessions[USER_SESSIONS].some(\n (session: UserSession) => session.self.cucmDN && session.self.cucmDN.length > 0\n );\n // If any user session has cucmDN, proceed to fetch line data\n if (hasCucmDN) {\n // Fetch the Lines data\n const ucmLinesResponse = await this.fetchUCMLinesData();\n\n // Check if the Lines API response was successful\n if (ucmLinesResponse.statusCode === 200 && ucmLinesResponse.data.lines?.devices) {\n const ucmLinesData = ucmLinesResponse.data.lines.devices;\n\n // Iterate over user sessions and match with Lines data\n this.userSessions[USER_SESSIONS].forEach((session: UserSession) => {\n const cucmDN = session.self.cucmDN;\n\n if (cucmDN) {\n ucmLinesData.forEach((device) => {\n device.lines.forEach((line) => {\n if (line.dnorpattern === cucmDN) {\n session.self.ucmLineNumber = line.index; // Assign the ucmLineNumber\n }\n });\n });\n }\n });\n }\n }\n }\n }\n\n const responseDetails = {\n statusCode: this.userSessions[STATUS_CODE],\n data: {\n userSessions: this.userSessions[USER_SESSIONS],\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(\n `Successfully retrieved call history data with ${this.userSessions[USER_SESSIONS].length} records`,\n this.loggerContext\n );\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get call history: ${JSON.stringify(err)}`, {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n });\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, this.loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to update the missed call status in the call history using sessionId and time.\n * @param endTimeSessionIds - An array of objects containing endTime and sessionId of the missed call history records\n * @returns {Promise} Resolves to an object of type {@link UpdateMissedCallsResponse}.Response details with success or error status.\n */\n public async updateMissedCalls(\n endTimeSessionIds: EndTimeSessionId[]\n ): Promise<UpdateMissedCallsResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.UPDATE_MISSED_CALLS,\n };\n // Convert endTime to milliseconds for each session\n const santizedSessionIds: SanitizedEndTimeAndSessionId[] = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n const requestBody = {\n endTimeSessionIds: santizedSessionIds,\n };\n\n log.info(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(santizedSessionIds)}`,\n loggerContext\n );\n try {\n const updateMissedCallContentUrl = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}/${UPDATE_MISSED_CALLS_ENDPOINT}`;\n // Make a POST request to update missed calls\n const response = await fetch(updateMissedCallContentUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await this.webex.credentials.getUserToken(),\n },\n body: JSON.stringify(requestBody),\n });\n if (!response.ok) {\n throw new Error(`${response.status}`);\n }\n\n log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);\n\n const data: UpdateMissedCallsResponse = await response.json();\n log.log(`Missed calls are successfully read by the user`, loggerContext);\n const responseDetails: UpdateMissedCallsResponse = {\n statusCode: data.statusCode as number,\n data: {\n readStatusMessage: SET_READ_STATE_SUCCESS_MESSAGE,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully updated ${santizedSessionIds?.length} missed calls`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to update missed calls: ${JSON.stringify(err)}`, {\n file: CALL_HISTORY_FILE,\n method: METHODS.UPDATE_MISSED_CALLS,\n });\n await uploadLogs();\n\n // Catch the 401 error from try block, return the error object to user\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to display the UCM Lines API response.\n * @returns {Promise} Resolves to an object of type {@link UCMLinesResponse}.Response details with success or error status.\n */\n private async fetchUCMLinesData(): Promise<UCMLinesResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n };\n const vgEndpoint = getVgActionEndpoint(this.webex, CALLING_BACKEND.UCM);\n const userId = this.webex.internal.device.userId;\n const orgId = this.webex.internal.device.orgId;\n const linesURIForUCM = `${vgEndpoint}/${VERSION_1}/${UNIFIED_COMMUNICATIONS}/${CONFIG}/${PEOPLE}/${userId}/${LINES}?${ORG_ID}=${orgId}`;\n\n log.info(`${METHOD_START_MESSAGE} with URL: ${linesURIForUCM}`, loggerContext);\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${linesURIForUCM}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const ucmLineDetails: UCMLinesResponse = {\n statusCode: Number(response.statusCode),\n data: {\n lines: response.body as UCMLinesApiResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Line details fetched successfully`, loggerContext);\n\n return ucmLineDetails;\n } catch (err: unknown) {\n log.error(`Failed to fetch UCM lines data: ${JSON.stringify(err)}`, {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n });\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to delete the call history records using sessionId and endTime.\n * @param deleteSessionIds - An array of objects containing endTime and sessionId of the call history records\n * @returns {Promise} Resolves to an object of type {@link DeleteCallHistoryRecordsResponse}.Response details with success or error status.\n */\n public async deleteCallHistoryRecords(\n deleteSessionIds: EndTimeSessionId[]\n ): Promise<DeleteCallHistoryRecordsResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n };\n\n // Collect all sessions with invalid dates (endTime) in an array\n const invalidSessions = deleteSessionIds.filter((session) =>\n Number.isNaN(new Date(session.endTime).getTime())\n );\n\n log.info(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(deleteSessionIds)}`,\n loggerContext\n );\n\n if (invalidSessions.length > 0) {\n // If there are invalid sessions, return an error with details\n const invalidSessionIds = invalidSessions.map((session) => session.sessionId).join(', ');\n log.info(\n `The provided date is malformed or invalid for session IDs: ${invalidSessionIds}`,\n loggerContext\n );\n\n return {\n statusCode: 400,\n data: {\n deleteStatusMessage: SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE,\n },\n message: FAILURE_MESSAGE,\n };\n }\n\n // Convert endTime to milliseconds for each sessionId\n const santizedSessionIds: SanitizedEndTimeAndSessionId[] = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n\n const deleteRequestBody = {\n deleteSessionIds: santizedSessionIds,\n };\n\n try {\n const deleteCallHistoryRecordContentUrl = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}/${DELETE_CALL_HISTORY_RECORDS_ENDPOINT}`;\n // Make a POST request to delete call history records\n const response = await fetch(deleteCallHistoryRecordContentUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await this.webex.credentials.getUserToken(),\n },\n body: JSON.stringify(deleteRequestBody),\n });\n if (!response.ok) {\n throw new Error(`${response.status}`);\n }\n\n log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);\n\n const data: DeleteCallHistoryRecordsResponse = await response.json();\n log.log(\n `Successfully deleted ${santizedSessionIds?.length} call history records`,\n loggerContext\n );\n const responseDetails: DeleteCallHistoryRecordsResponse = {\n statusCode: data.statusCode as number,\n data: {\n deleteStatusMessage: SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE,\n },\n message: SUCCESS_MESSAGE,\n };\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to delete call history records: ${JSON.stringify(err)}`, {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n });\n await uploadLogs();\n\n // Catch the 401 error from try block, return the error object to user\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n handleSessionEvents = async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n this.emit(COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO, event as CallSessionEvent);\n }\n };\n\n handleUserReadSessionEvents = async (event?: CallSessionViewedEvent) => {\n if (event && event.data.userReadSessions.userReadSessions) {\n this.emit(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS,\n event as CallSessionViewedEvent\n );\n }\n };\n\n handleUserSessionsDeletedEvents = async (event?: CallSessionDeletedEvent) => {\n if (event && event.data.deletedSessions) {\n this.emit(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED,\n event as CallSessionDeletedEvent\n );\n }\n };\n\n /**\n *\n */\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n this.handleSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY,\n this.handleSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionViewedEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED,\n this.handleUserReadSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionDeletedEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED,\n this.handleUserSessionsDeletedEvents\n );\n }\n}\n/**\n * Creates a `CallHistory` client instance for accessing Call History APIs.\n *\n * @param {WebexSDK} webex - `Webex SDK` instance.\n * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.\n */\nexport const createCallHistoryClient = (webex: WebexSDK, logger: LoggerInterface): ICallHistory =>\n new CallHistory(webex, logger);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAgBA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAMA,IAAAI,UAAA,GAAAJ,OAAA;AAqBA,IAAAK,WAAA,GAAAL,OAAA;AAOA,IAAAM,OAAA,GAAAN,OAAA;AAYA,IAAAO,KAAA,GAAAP,OAAA;AAAwC,SAAAQ,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;AAAA,SAAAqB,aAAAnB,CAAA,QAAAD,CAAA,GAAAqB,yBAAA,6BAAAtB,CAAA,EAAAK,CAAA,OAAAkB,gBAAA,CAAAN,OAAA,EAAAf,CAAA,OAAAD,CAAA,QAAAuB,CAAA,OAAAD,gBAAA,CAAAN,OAAA,QAAAQ,WAAA,EAAAzB,CAAA,GAAA0B,kBAAA,CAAArB,CAAA,EAAAO,SAAA,EAAAY,CAAA,UAAAxB,CAAA,GAAAK,CAAA,CAAAK,KAAA,OAAAE,SAAA,cAAAe,2BAAA,CAAAV,OAAA,QAAAjB,CAAA;AAAA,SAAAsB,0BAAA,cAAApB,CAAA,IAAA0B,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAL,kBAAA,CAAAE,OAAA,iCAAA1B,CAAA,aAAAoB,yBAAA,YAAAA,0BAAA,aAAApB,CAAA,UAnExC,kCACA;AAmEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,IAUa8B,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAAE,SAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAe,WAAA,EAAAE,SAAA;EAAA,IAAAE,MAAA,GAAAf,YAAA,CAAAW,WAAA;EAgBtB;AACF;AACA;EACE,SAAAA,YAAYK,KAAe,EAAEC,MAAuB,EAAE;IAAA,IAAAC,qBAAA;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAxB,OAAA,QAAAe,WAAA;IACpDQ,KAAA,GAAAJ,MAAA,CAAAL,IAAA;IAAQ,IAAAf,gBAAA,CAAAC,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAuB,KAAA;IAAA,IAAAxB,gBAAA,CAAAC,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAuB,KAAA;IAAA,IAAAxB,gBAAA,CAAAC,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAuB,KAAA,eAfS,EAAE;IAAA,IAAAxB,gBAAA,CAAAC,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAuB,KAAA,eAEF,EAAE;IAAA,IAAAxB,gBAAA,CAAAC,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAuB,KAAA,oBAEG;MACtBG,IAAI,EAAEC,4BAAiB;MACvBC,MAAM,EAAEC,kBAAO,CAACC;IAClB,CAAC;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAuB,KAAA;IAAA,IAAAxB,gBAAA,CAAAC,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAuB,KAAA;MAAA,IAAAQ,IAAA,OAAAC,kBAAA,CAAAhC,OAAA,eAAAiC,YAAA,CAAAjC,OAAA,CAAAkC,IAAA,CAmXqB,SAAAC,QAAOC,KAAwB;QAAA,OAAAH,YAAA,CAAAjC,OAAA,CAAAqC,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cACnD,IAAIL,KAAK,IAAIA,KAAK,CAACM,IAAI,CAACC,YAAY,CAACA,YAAY,EAAE;gBACjDpB,KAAA,CAAKqB,IAAI,CAACC,yBAAiB,CAACC,8BAA8B,EAAEV,KAAyB,CAAC;cACxF;YAAC;YAAA;cAAA,OAAAG,QAAA,CAAAQ,IAAA;UAAA;QAAA,GAAAZ,OAAA;MAAA,CACF;MAAA,iBAAAa,EAAA;QAAA,OAAAjB,IAAA,CAAAtC,KAAA,OAAAE,SAAA;MAAA;IAAA;IAAA,IAAAI,gBAAA,CAAAC,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAuB,KAAA;MAAA,IAAA0B,KAAA,OAAAjB,kBAAA,CAAAhC,OAAA,eAAAiC,YAAA,CAAAjC,OAAA,CAAAkC,IAAA,CAE6B,SAAAgB,SAAOd,KAA8B;QAAA,OAAAH,YAAA,CAAAjC,OAAA,CAAAqC,IAAA,UAAAc,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAZ,IAAA,GAAAY,SAAA,CAAAX,IAAA;YAAA;cACjE,IAAIL,KAAK,IAAIA,KAAK,CAACM,IAAI,CAACW,gBAAgB,CAACA,gBAAgB,EAAE;gBACzD9B,KAAA,CAAKqB,IAAI,CACPC,yBAAiB,CAACS,iCAAiC,EACnDlB,KACF,CAAC;cACH;YAAC;YAAA;cAAA,OAAAgB,SAAA,CAAAL,IAAA;UAAA;QAAA,GAAAG,QAAA;MAAA,CACF;MAAA,iBAAAK,GAAA;QAAA,OAAAN,KAAA,CAAAxD,KAAA,OAAAE,SAAA;MAAA;IAAA;IAAA,IAAAI,gBAAA,CAAAC,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAuB,KAAA;MAAA,IAAAiC,KAAA,OAAAxB,kBAAA,CAAAhC,OAAA,eAAAiC,YAAA,CAAAjC,OAAA,CAAAkC,IAAA,CAEiC,SAAAuB,SAAOrB,KAA+B;QAAA,OAAAH,YAAA,CAAAjC,OAAA,CAAAqC,IAAA,UAAAqB,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAnB,IAAA,GAAAmB,SAAA,CAAAlB,IAAA;YAAA;cACtE,IAAIL,KAAK,IAAIA,KAAK,CAACM,IAAI,CAACkB,eAAe,EAAE;gBACvCrC,KAAA,CAAKqB,IAAI,CACPC,yBAAiB,CAACgB,kCAAkC,EACpDzB,KACF,CAAC;cACH;YAAC;YAAA;cAAA,OAAAuB,SAAA,CAAAZ,IAAA;UAAA;QAAA,GAAAU,QAAA;MAAA,CACF;MAAA,iBAAAK,GAAA;QAAA,OAAAN,KAAA,CAAA/D,KAAA,OAAAE,SAAA;MAAA;IAAA;IAhYC4B,KAAA,CAAKwC,YAAY,GAAGC,qBAAY;IAChC,IAAI,CAACzC,KAAA,CAAKwC,YAAY,CAACE,QAAQ,CAAC,CAAC,EAAE;MACjCD,qBAAY,CAACE,QAAQ,CAAC9C,KAAK,CAAC;IAC9B;IACAG,KAAA,CAAKH,KAAK,GAAGG,KAAA,CAAKwC,YAAY,CAACE,QAAQ,CAAC,CAAC;IACzC1C,KAAA,CAAK4C,QAAQ,GACX,EAAA7C,qBAAA,GAAAC,KAAA,CAAKH,KAAK,CAACgD,QAAQ,CAACC,QAAQ,CAACC,YAAY,cAAAhD,qBAAA,uBAAzCA,qBAAA,CAA2CiD,KAAK,KAChDhD,KAAA,CAAKH,KAAK,CAACgD,QAAQ,CAACC,QAAQ,CAACG,GAAG,CAACjD,KAAA,CAAKH,KAAK,CAACgD,QAAQ,CAACC,QAAQ,CAACI,eAAe,CAACF,KAAK,CAAC;IACtFhD,KAAA,CAAKmD,wBAAwB,CAAC,CAAC;IAC/BC,eAAG,CAACC,SAAS,CAACvD,MAAM,CAACwD,KAAK,EAAElD,4BAAiB,CAAC;IAAC,OAAAJ,KAAA;EACjD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE,IAAAuD,aAAA,CAAA9E,OAAA,EAAAe,WAAA;IAAAgE,GAAA;IAAAC,KAAA;MAAA,IAAAC,mBAAA,OAAAjD,kBAAA,CAAAhC,OAAA,eAAAiC,YAAA,CAAAjC,OAAA,CAAAkC,IAAA,CAOA,SAAAgD,SAAA;QAAA,IAAAC,IAAA;UAAAC,KAAA;UAAAC,IAAA;UAAAC,MAAA;UAAAC,IAAA;UAAAC,cAAA;UAAAC,WAAA;UAAAC,SAAA;UAAAC,mBAAA;UAAAC,GAAA;UAAAC,qBAAA;UAAAC,aAAA;UAAAC,SAAA;UAAAC,qBAAA;UAAAC,gBAAA;UAAAC,YAAA;UAAAC,eAAA;UAAAC,SAAA;UAAAC,WAAA;UAAAC,MAAA,GAAA3G,SAAA;QAAA,OAAAsC,YAAA,CAAAjC,OAAA,CAAAqC,IAAA,UAAAkE,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAhE,IAAA,GAAAgE,SAAA,CAAA/D,IAAA;YAAA;cACE0C,IAAY,GAAAmB,MAAA,CAAA1G,MAAA,QAAA0G,MAAA,QAAAG,SAAA,GAAAH,MAAA,MAAGI,yBAAc;cAC7BtB,KAAa,GAAAkB,MAAA,CAAA1G,MAAA,QAAA0G,MAAA,QAAAG,SAAA,GAAAH,MAAA,MAAGK,gBAAK;cACrBtB,IAAU,GAAAiB,MAAA,CAAA1G,MAAA,QAAA0G,MAAA,QAAAG,SAAA,GAAAH,MAAA,MAAGM,WAAI,CAACC,OAAO;cACzBvB,MAAe,GAAAgB,MAAA,CAAA1G,MAAA,QAAA0G,MAAA,QAAAG,SAAA,GAAAH,MAAA,MAAGQ,cAAO,CAACD,OAAO;cAEjC;AACJ;AACA;AACA;cACUtB,IAAI,GAAG,IAAIwB,IAAI,CAAC,CAAC;cACjBvB,cAAc,GAAG,IAAAwB,wBAAiB,EAAC,IAAI,CAAC5F,KAAK,CAAC;cACpDmE,IAAI,CAAC0B,OAAO,CAAC1B,IAAI,CAAC2B,OAAO,CAAC,CAAC,GAAG/B,IAAI,CAAC;cACnC,IAAI,CAACgC,QAAQ,GAAG5B,IAAI,CAAC6B,WAAW,CAAC,CAAC;cAC5B3B,WAAW,GAAG,IAAA4B,OAAA,CAAArH,OAAA,EAAc8G,cAAO,CAAC,CAACQ,QAAQ,CAAChC,MAAM,CAAC,GAAGA,MAAM,GAAGwB,cAAO,CAACD,OAAO;cAChFnB,SAAS,GAAG,IAAA2B,OAAA,CAAArH,OAAA,EAAc4G,WAAI,CAAC,CAACU,QAAQ,CAACjC,IAAI,CAAC,GAAGA,IAAI,GAAGuB,WAAI,CAACC,OAAO;cAE1ElC,eAAG,CAAC4C,IAAI,IAAAC,MAAA,CACHC,gCAAoB,iBAAAD,MAAA,CAAcrC,IAAI,cAAAqC,MAAA,CAAWpC,KAAK,aAAAoC,MAAA,CAAU9B,SAAS,eAAA8B,MAAA,CAAY/B,WAAW,GACnG,IAAI,CAACiC,aACP,CAAC;cAED/C,eAAG,CAAC4C,IAAI,mBAAAC,MAAA,CAAmB,IAAI,CAACrD,QAAQ,GAAI,IAAI,CAACuD,aAAa,CAAC;cAC/D/C,eAAG,CAAC4C,IAAI,6BAAAC,MAAA,CAA6B,IAAI,CAACL,QAAQ,GAAI,IAAI,CAACO,aAAa,CAAC;;cAEzE;cACM/B,mBAAmB,GACvBH,cAAc,KAAKmC,sBAAe,CAACC,GAAG,GAAG,6BAA6B,GAAG,EAAE;cAC7EjD,eAAG,CAAC4C,IAAI,8BAAAC,MAAA,CACuBhC,cAAc,cAAAgC,MAAA,CACzChC,cAAc,KAAKmC,sBAAe,CAACC,GAAG,GAAG,uBAAuB,GAAG,EAAE,GAEvE,IAAI,CAACF,aACP,CAAC;cACK9B,GAAG,MAAA4B,MAAA,CAAM,IAAI,CAACrD,QAAQ,OAAAqD,MAAA,CAAIK,kBAAO,OAAAL,MAAA,CAAIM,yBAAa,EAAAN,MAAA,CAAGO,oBAAS,OAAAP,MAAA,CAAI,IAAI,CAACL,QAAQ,aAAAK,MAAA,CAAUpC,KAAK,wCAAAoC,MAAA,CAAqC9B,SAAS,EAAA8B,MAAA,CAAG7B,mBAAmB;cAAAa,SAAA,CAAAhE,IAAA;cAAAgE,SAAA,CAAA/D,IAAA;cAAA,OAGrH,IAAI,CAACrB,KAAK,CAAC4G,OAAO,CAAC;gBAClEC,GAAG,KAAAT,MAAA,CAAK5B,GAAG,CAAE;gBACbhE,MAAM,EAAEsG,mBAAY,CAACC,GAAG;gBACxBC,OAAO,EAAEC,uBAAgB,CAACC;cAC5B,CAAC,CAAC;YAAA;cAJIxC,aAAa,GAAAU,SAAA,CAAA+B,IAAA;cAMnB5D,eAAG,CAACA,GAAG,yBAAA6C,MAAA,CAAyB1B,aAAa,aAAbA,aAAa,wBAAAD,qBAAA,GAAbC,aAAa,CAAE0C,OAAO,cAAA3C,qBAAA,uBAAtBA,qBAAA,CAAwB4C,UAAU,GAAI,IAAI,CAACf,aAAa,CAAC;cAEzF,IAAI,CAAC/E,YAAY,GAAGmD,aAAa,CAAC4C,IAAqB;cACvD,IAAIjD,WAAW,KAAKqB,cAAO,CAAC6B,UAAU,EAAE;gBACtC,IAAIjD,SAAS,KAAKkB,WAAI,CAACgC,IAAI,EAAE;kBAC3B,IAAI,CAACjG,YAAY,CAACmF,yBAAa,CAAC,CAACzC,IAAI,CACnC,UAACwD,OAAa,EAAEC,cAAoB;oBAAA,OAClC,IAAI/B,IAAI,CAAC+B,cAAc,CAACrD,WAAW,CAAC,CAAC,CAACsD,OAAO,CAAC,CAAC,GAC/C,IAAIhC,IAAI,CAAC8B,OAAO,CAACpD,WAAW,CAAC,CAAC,CAACsD,OAAO,CAAC,CAAC;kBAAA,CAC5C,CAAC;gBACH,CAAC,MAAM,IAAIrD,SAAS,KAAKkB,WAAI,CAACoC,GAAG,EAAE;kBACjC,IAAI,CAACrG,YAAY,CAACmF,yBAAa,CAAC,CAACzC,IAAI,CACnC,UAACwD,OAAa,EAAEC,cAAoB;oBAAA,OAClC,IAAI/B,IAAI,CAAC8B,OAAO,CAACpD,WAAW,CAAC,CAAC,CAACsD,OAAO,CAAC,CAAC,GACxC,IAAIhC,IAAI,CAAC+B,cAAc,CAACrD,WAAW,CAAC,CAAC,CAACsD,OAAO,CAAC,CAAC;kBAAA,CACnD,CAAC;gBACH;cACF;cACA;cAAA,MACIvD,cAAc,KAAKmC,sBAAe,CAACsB,GAAG;gBAAAzC,SAAA,CAAA/D,IAAA;gBAAA;cAAA;cAAA,MAEpC,IAAI,CAACE,YAAY,CAACmF,yBAAa,CAAC,IAAI,IAAI,CAACnF,YAAY,CAACmF,yBAAa,CAAC,CAAClI,MAAM,GAAG,CAAC;gBAAA4G,SAAA,CAAA/D,IAAA;gBAAA;cAAA;cACjF;cACMsD,SAAS,GAAG,IAAI,CAACpD,YAAY,CAACmF,yBAAa,CAAC,CAACoB,IAAI,CACrD,UAACC,OAAoB;gBAAA,OAAKA,OAAO,CAACC,IAAI,CAACC,MAAM,IAAIF,OAAO,CAACC,IAAI,CAACC,MAAM,CAACzJ,MAAM,GAAG,CAAC;cAAA,CACjF,CAAC,EACD;cAAA,KACImG,SAAS;gBAAAS,SAAA,CAAA/D,IAAA;gBAAA;cAAA;cAAA+D,SAAA,CAAA/D,IAAA;cAAA,OAEoB,IAAI,CAAC6G,iBAAiB,CAAC,CAAC;YAAA;cAAjDrD,gBAAgB,GAAAO,SAAA,CAAA+B,IAAA;cAEtB;cACA,IAAItC,gBAAgB,CAACsD,UAAU,KAAK,GAAG,KAAAvD,qBAAA,GAAIC,gBAAgB,CAACvD,IAAI,CAAC8G,KAAK,cAAAxD,qBAAA,eAA3BA,qBAAA,CAA6ByD,OAAO,EAAE;gBACzEvD,YAAY,GAAGD,gBAAgB,CAACvD,IAAI,CAAC8G,KAAK,CAACC,OAAO,EAExD;gBACA,IAAI,CAAC9G,YAAY,CAACmF,yBAAa,CAAC,CAAChI,OAAO,CAAC,UAACqJ,OAAoB,EAAK;kBACjE,IAAME,MAAM,GAAGF,OAAO,CAACC,IAAI,CAACC,MAAM;kBAElC,IAAIA,MAAM,EAAE;oBACVnD,YAAY,CAACpG,OAAO,CAAC,UAAC4J,MAAM,EAAK;sBAC/BA,MAAM,CAACF,KAAK,CAAC1J,OAAO,CAAC,UAAC6J,IAAI,EAAK;wBAC7B,IAAIA,IAAI,CAACC,WAAW,KAAKP,MAAM,EAAE;0BAC/BF,OAAO,CAACC,IAAI,CAACS,aAAa,GAAGF,IAAI,CAACG,KAAK,CAAC,CAAC;wBAC3C;sBACF,CAAC,CAAC;oBACJ,CAAC,CAAC;kBACJ;gBACF,CAAC,CAAC;cACJ;YAAC;cAKD3D,eAAe,GAAG;gBACtBoD,UAAU,EAAE,IAAI,CAAC5G,YAAY,CAACoH,uBAAW,CAAC;gBAC1CrH,IAAI,EAAE;kBACJC,YAAY,EAAE,IAAI,CAACA,YAAY,CAACmF,yBAAa;gBAC/C,CAAC;gBACDkC,OAAO,EAAEC;cACX,CAAC;cAEDtF,eAAG,CAACA,GAAG,kDAAA6C,MAAA,CAC4C,IAAI,CAAC7E,YAAY,CAACmF,yBAAa,CAAC,CAAClI,MAAM,eACxF,IAAI,CAAC8H,aACP,CAAC;cAAC,OAAAlB,SAAA,CAAA0D,MAAA,WAEK/D,eAAe;YAAA;cAAAK,SAAA,CAAAhE,IAAA;cAAAgE,SAAA,CAAA2D,EAAA,GAAA3D,SAAA;cAEtB7B,eAAG,CAACyF,KAAK,gCAAA5C,MAAA,CAAgC,IAAA6C,UAAA,CAAArK,OAAA,EAAAwG,SAAA,CAAA2D,EAAkB,CAAC,GAAI;gBAC9DzI,IAAI,EAAEC,4BAAiB;gBACvBC,MAAM,EAAEC,kBAAO,CAACC;cAClB,CAAC,CAAC;cAAC0E,SAAA,CAAA/D,IAAA;cAAA,OACG,IAAA6H,iBAAU,EAAC,CAAC;YAAA;cAEZlE,SAAS,GAAAI,SAAA,CAAA2D,EAAA;cACT9D,WAAW,GAAG,IAAAkE,8BAAuB,EAACnE,SAAS,EAAE,IAAI,CAACsB,aAAa,CAAC;cAAA,OAAAlB,SAAA,CAAA0D,MAAA,WAEnE7D,WAAW;YAAA;YAAA;cAAA,OAAAG,SAAA,CAAAzD,IAAA;UAAA;QAAA,GAAAmC,QAAA;MAAA,CAErB;MAAA,SAAAsF,mBAAA;QAAA,OAAAvF,mBAAA,CAAAxF,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAA6K,kBAAA;IAAA;IAED;AACF;AACA;AACA;AACA;IAJE;EAAA;IAAAzF,GAAA;IAAAC,KAAA;MAAA,IAAAyF,kBAAA,OAAAzI,kBAAA,CAAAhC,OAAA,eAAAiC,YAAA,CAAAjC,OAAA,CAAAkC,IAAA,CAKA,SAAAwI,SACEC,iBAAqC;QAAA,IAAAjD,aAAA,EAAAkD,kBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,0BAAA,EAAAC,QAAA,EAAAtI,IAAA,EAAAyD,eAAA,EAAAC,SAAA,EAAAC,WAAA;QAAA,OAAApE,YAAA,CAAAjC,OAAA,CAAAqC,IAAA,UAAA4I,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA1I,IAAA,GAAA0I,SAAA,CAAAzI,IAAA;YAAA;cAE/BiF,aAAa,GAAG;gBACpBhG,IAAI,EAAEC,4BAAiB;gBACvBC,MAAM,EAAEC,kBAAO,CAACsJ;cAClB,CAAC,EACD;cACMP,kBAAkD,GAAGD,iBAAiB,CAACS,GAAG,CAAC,UAACjC,OAAO;gBAAA,OAAAzJ,aAAA,CAAAA,aAAA,KACpFyJ,OAAO;kBACVkC,OAAO,EAAE,IAAItE,IAAI,CAACoC,OAAO,CAACkC,OAAO,CAAC,CAACtC,OAAO,CAAC;gBAAC;cAAA,CAC5C,CAAC;cACG8B,WAAW,GAAG;gBAClBF,iBAAiB,EAAEC;cACrB,CAAC;cAEDjG,eAAG,CAAC4C,IAAI,IAAAC,MAAA,CACHC,gCAAoB,sBAAAD,MAAA,CAAmB,IAAA6C,UAAA,CAAArK,OAAA,EAAe4K,kBAAkB,CAAC,GAC5ElD,aACF,CAAC;cAACwD,SAAA,CAAA1I,IAAA;cAEMuI,0BAA0B,MAAAvD,MAAA,CAAM,IAAI,CAACrD,QAAQ,OAAAqD,MAAA,CAAIK,kBAAO,OAAAL,MAAA,CAAIM,yBAAa,OAAAN,MAAA,CAAI8D,uCAA4B,GAC/G;cAAAJ,SAAA,CAAAf,EAAA,GACuBoB,KAAK;cAAAL,SAAA,CAAAM,EAAA,GAACT,0BAA0B;cAAAG,SAAA,CAAAO,EAAA,GAC7CvD,mBAAY,CAACwD,IAAI;cAAAR,SAAA,CAAAS,EAAA,GAAA5L,gBAAA,CAAAC,OAAA;cAAAkL,SAAA,CAAAU,EAAA,OAAA7L,gBAAA,CAAAC,OAAA,MAEtB6L,uBAAY,EAAGC,2BAAgB;cAAAZ,SAAA,CAAAzI,IAAA;cAAA,OACX,IAAI,CAACrB,KAAK,CAAC2K,WAAW,CAACC,YAAY,CAAC,CAAC;YAAA;cAAAd,SAAA,CAAAe,EAAA,GAAAf,SAAA,CAAA3C,IAAA;cAAA2C,SAAA,CAAAgB,EAAA,OAAAhB,SAAA,CAAAS,EAAA,EAAAT,SAAA,CAAAU,EAAA,mBAAAV,SAAA,CAAAe,EAAA;cAAAf,SAAA,CAAAiB,EAAA,GAEtD,IAAA9B,UAAA,CAAArK,OAAA,EAAe6K,WAAW,CAAC;cAAAK,SAAA,CAAAkB,EAAA;gBALjCxK,MAAM,EAAAsJ,SAAA,CAAAO,EAAA;gBACNjD,OAAO,EAAA0C,SAAA,CAAAgB,EAAA;gBAIPxD,IAAI,EAAAwC,SAAA,CAAAiB;cAAA;cAAAjB,SAAA,CAAAzI,IAAA;cAAA,WAAAyI,SAAA,CAAAf,EAAA,EAAAe,SAAA,CAAAM,EAAA,EAAAN,SAAA,CAAAkB,EAAA;YAAA;cANApB,QAAQ,GAAAE,SAAA,CAAA3C,IAAA;cAAA,IAQTyC,QAAQ,CAACqB,EAAE;gBAAAnB,SAAA,CAAAzI,IAAA;gBAAA;cAAA;cAAA,MACR,IAAI6J,KAAK,IAAA9E,MAAA,CAAIwD,QAAQ,CAACuB,MAAM,CAAE,CAAC;YAAA;cAGvC5H,eAAG,CAACA,GAAG,yBAAA6C,MAAA,EAAAsD,iBAAA,GAAyBE,QAAQ,CAACxC,OAAO,cAAAsC,iBAAA,uBAAhBA,iBAAA,CAAkBtG,GAAG,CAAC,YAAY,CAAC,GAAIkD,aAAa,CAAC;cAACwD,SAAA,CAAAzI,IAAA;cAAA,OAExCuI,QAAQ,CAACwB,IAAI,CAAC,CAAC;YAAA;cAAvD9J,IAA+B,GAAAwI,SAAA,CAAA3C,IAAA;cACrC5D,eAAG,CAACA,GAAG,mDAAmD+C,aAAa,CAAC;cAClEvB,eAA0C,GAAG;gBACjDoD,UAAU,EAAE7G,IAAI,CAAC6G,UAAoB;gBACrC7G,IAAI,EAAE;kBACJ+J,iBAAiB,EAAEC;gBACrB,CAAC;gBACD1C,OAAO,EAAEC;cACX,CAAC;cAEDtF,eAAG,CAACA,GAAG,yBAAA6C,MAAA,CAAyBoD,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEhL,MAAM,oBAAiB8H,aAAa,CAAC;cAAC,OAAAwD,SAAA,CAAAhB,MAAA,WAEnF/D,eAAe;YAAA;cAAA+E,SAAA,CAAA1I,IAAA;cAAA0I,SAAA,CAAAyB,EAAA,GAAAzB,SAAA;cAEtBvG,eAAG,CAACyF,KAAK,mCAAA5C,MAAA,CAAmC,IAAA6C,UAAA,CAAArK,OAAA,EAAAkL,SAAA,CAAAyB,EAAkB,CAAC,GAAI;gBACjEjL,IAAI,EAAEC,4BAAiB;gBACvBC,MAAM,EAAEC,kBAAO,CAACsJ;cAClB,CAAC,CAAC;cAACD,SAAA,CAAAzI,IAAA;cAAA,OACG,IAAA6H,iBAAU,EAAC,CAAC;YAAA;cAElB;cACMlE,SAAS,GAAG;gBAChBmD,UAAU,EAAE2B,SAAA,CAAAyB,EAAA,YAAeL,KAAK,GAAGM,MAAM,CAAC1B,SAAA,CAAAyB,EAAA,CAAI3C,OAAO,CAAC,GAAG;cAC3D,CAAC;cACK3D,WAAW,GAAG,IAAAkE,8BAAuB,EAACnE,SAAS,EAAEsB,aAAa,CAAC;cAAA,OAAAwD,SAAA,CAAAhB,MAAA,WAE9D7D,WAAW;YAAA;YAAA;cAAA,OAAA6E,SAAA,CAAAnI,IAAA;UAAA;QAAA,GAAA2H,QAAA;MAAA,CAErB;MAAA,SAAAmC,kBAAAC,GAAA;QAAA,OAAArC,kBAAA,CAAAhL,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAkN,iBAAA;IAAA;IAED;AACF;AACA;AACA;IAHE;EAAA;IAAA9H,GAAA;IAAAC,KAAA;MAAA,IAAA+H,kBAAA,OAAA/K,kBAAA,CAAAhC,OAAA,eAAAiC,YAAA,CAAAjC,OAAA,CAAAkC,IAAA,CAIA,SAAA8K,SAAA;QAAA,IAAAtF,aAAA,EAAAuF,UAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,cAAA,EAAAC,kBAAA,EAAArC,QAAA,EAAAsC,cAAA,EAAAlH,SAAA,EAAAC,WAAA;QAAA,OAAApE,YAAA,CAAAjC,OAAA,CAAAqC,IAAA,UAAAkL,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAhL,IAAA,GAAAgL,SAAA,CAAA/K,IAAA;YAAA;cACQiF,aAAa,GAAG;gBACpBhG,IAAI,EAAEC,4BAAiB;gBACvBC,MAAM,EAAEC,kBAAO,CAAC4L;cAClB,CAAC;cACKR,UAAU,GAAG,IAAAS,0BAAmB,EAAC,IAAI,CAACtM,KAAK,EAAEuG,sBAAe,CAACsB,GAAG,CAAC;cACjEiE,MAAM,GAAG,IAAI,CAAC9L,KAAK,CAACgD,QAAQ,CAACsF,MAAM,CAACwD,MAAM;cAC1CC,KAAK,GAAG,IAAI,CAAC/L,KAAK,CAACgD,QAAQ,CAACsF,MAAM,CAACyD,KAAK;cACxCC,cAAc,MAAA5F,MAAA,CAAMyF,UAAU,OAAAzF,MAAA,CAAImG,oBAAS,OAAAnG,MAAA,CAAIoG,iCAAsB,OAAApG,MAAA,CAAIqG,iBAAM,OAAArG,MAAA,CAAIsG,iBAAM,OAAAtG,MAAA,CAAI0F,MAAM,OAAA1F,MAAA,CAAIuG,gBAAK,OAAAvG,MAAA,CAAIwG,iBAAM,OAAAxG,MAAA,CAAI2F,KAAK;cAErIxI,eAAG,CAAC4C,IAAI,IAAAC,MAAA,CAAIC,gCAAoB,iBAAAD,MAAA,CAAc4F,cAAc,GAAI1F,aAAa,CAAC;cAAC8F,SAAA,CAAAhL,IAAA;cAAAgL,SAAA,CAAA/K,IAAA;cAAA,OAEjC,IAAI,CAACrB,KAAK,CAAC4G,OAAO,CAAC;gBAC7DC,GAAG,KAAAT,MAAA,CAAK4F,cAAc,CAAE;gBACxBxL,MAAM,EAAEsG,mBAAY,CAACC;cACvB,CAAC,CAAC;YAAA;cAHI6C,QAAQ,GAAAwC,SAAA,CAAAjF,IAAA;cAKd5D,eAAG,CAACA,GAAG,yBAAA6C,MAAA,CAAyBwD,QAAQ,aAARA,QAAQ,wBAAAqC,kBAAA,GAARrC,QAAQ,CAAExC,OAAO,cAAA6E,kBAAA,uBAAjBA,kBAAA,CAAmB5E,UAAU,GAAIf,aAAa,CAAC;cAEzE4F,cAAgC,GAAG;gBACvC/D,UAAU,EAAEqD,MAAM,CAAC5B,QAAQ,CAACzB,UAAU,CAAC;gBACvC7G,IAAI,EAAE;kBACJ8G,KAAK,EAAEwB,QAAQ,CAACtC;gBAClB,CAAC;gBACDsB,OAAO,EAAEC;cACX,CAAC;cAEDtF,eAAG,CAACA,GAAG,sCAAsC+C,aAAa,CAAC;cAAC,OAAA8F,SAAA,CAAAtD,MAAA,WAErDoD,cAAc;YAAA;cAAAE,SAAA,CAAAhL,IAAA;cAAAgL,SAAA,CAAArD,EAAA,GAAAqD,SAAA;cAErB7I,eAAG,CAACyF,KAAK,oCAAA5C,MAAA,CAAoC,IAAA6C,UAAA,CAAArK,OAAA,EAAAwN,SAAA,CAAArD,EAAkB,CAAC,GAAI;gBAClEzI,IAAI,EAAEC,4BAAiB;gBACvBC,MAAM,EAAEC,kBAAO,CAAC4L;cAClB,CAAC,CAAC;cAACD,SAAA,CAAA/K,IAAA;cAAA,OACG,IAAA6H,iBAAU,EAAC,CAAC;YAAA;cAEZlE,SAAS,GAAAoH,SAAA,CAAArD,EAAA;cACT9D,WAAW,GAAG,IAAAkE,8BAAuB,EAACnE,SAAS,EAAEsB,aAAa,CAAC;cAAA,OAAA8F,SAAA,CAAAtD,MAAA,WAE9D7D,WAAW;YAAA;YAAA;cAAA,OAAAmH,SAAA,CAAAzK,IAAA;UAAA;QAAA,GAAAiK,QAAA;MAAA,CAErB;MAAA,SAAA1D,kBAAA;QAAA,OAAAyD,kBAAA,CAAAtN,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAA2J,iBAAA;IAAA;IAED;AACF;AACA;AACA;AACA;IAJE;EAAA;IAAAvE,GAAA;IAAAC,KAAA;MAAA,IAAAiJ,yBAAA,OAAAjM,kBAAA,CAAAhC,OAAA,eAAAiC,YAAA,CAAAjC,OAAA,CAAAkC,IAAA,CAKA,SAAAgM,SACEC,gBAAoC;QAAA,IAAAzG,aAAA,EAAA0G,eAAA,EAAAC,iBAAA,EAAAzD,kBAAA,EAAA0D,iBAAA,EAAAC,kBAAA,EAAAC,iCAAA,EAAAxD,QAAA,EAAAtI,IAAA,EAAAyD,eAAA,EAAAC,SAAA,EAAAC,WAAA;QAAA,OAAApE,YAAA,CAAAjC,OAAA,CAAAqC,IAAA,UAAAoM,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAlM,IAAA,GAAAkM,SAAA,CAAAjM,IAAA;YAAA;cAE9BiF,aAAa,GAAG;gBACpBhG,IAAI,EAAEC,4BAAiB;gBACvBC,MAAM,EAAEC,kBAAO,CAAC8M;cAClB,CAAC,EAED;cACMP,eAAe,GAAGD,gBAAgB,CAAC9O,MAAM,CAAC,UAAC8J,OAAO;gBAAA,OACtD,IAAAyF,MAAA,CAAA5O,OAAA,EAAa,IAAI+G,IAAI,CAACoC,OAAO,CAACkC,OAAO,CAAC,CAACtC,OAAO,CAAC,CAAC,CAAC;cAAA,CACnD,CAAC;cAEDpE,eAAG,CAAC4C,IAAI,IAAAC,MAAA,CACHC,gCAAoB,sBAAAD,MAAA,CAAmB,IAAA6C,UAAA,CAAArK,OAAA,EAAemO,gBAAgB,CAAC,GAC1EzG,aACF,CAAC;cAAC,MAEE0G,eAAe,CAACxO,MAAM,GAAG,CAAC;gBAAA8O,SAAA,CAAAjM,IAAA;gBAAA;cAAA;cAC5B;cACM4L,iBAAiB,GAAGD,eAAe,CAAChD,GAAG,CAAC,UAACjC,OAAO;gBAAA,OAAKA,OAAO,CAAC0F,SAAS;cAAA,EAAC,CAACC,IAAI,CAAC,IAAI,CAAC;cACxFnK,eAAG,CAAC4C,IAAI,+DAAAC,MAAA,CACwD6G,iBAAiB,GAC/E3G,aACF,CAAC;cAAC,OAAAgH,SAAA,CAAAxE,MAAA,WAEK;gBACLX,UAAU,EAAE,GAAG;gBACf7G,IAAI,EAAE;kBACJqM,mBAAmB,EAAEC;gBACvB,CAAC;gBACDhF,OAAO,EAAEiF;cACX,CAAC;YAAA;cAGH;cACMrE,kBAAkD,GAAGuD,gBAAgB,CAAC/C,GAAG,CAAC,UAACjC,OAAO;gBAAA,OAAAzJ,aAAA,CAAAA,aAAA,KACnFyJ,OAAO;kBACVkC,OAAO,EAAE,IAAItE,IAAI,CAACoC,OAAO,CAACkC,OAAO,CAAC,CAACtC,OAAO,CAAC;gBAAC;cAAA,CAC5C,CAAC;cAEGuF,iBAAiB,GAAG;gBACxBH,gBAAgB,EAAEvD;cACpB,CAAC;cAAA8D,SAAA,CAAAlM,IAAA;cAGOgM,iCAAiC,MAAAhH,MAAA,CAAM,IAAI,CAACrD,QAAQ,OAAAqD,MAAA,CAAIK,kBAAO,OAAAL,MAAA,CAAIM,yBAAa,OAAAN,MAAA,CAAI0H,+CAAoC,GAC9H;cAAAR,SAAA,CAAAvE,EAAA,GACuBoB,KAAK;cAAAmD,SAAA,CAAAlD,EAAA,GAACgD,iCAAiC;cAAAE,SAAA,CAAAjD,EAAA,GACpDvD,mBAAY,CAACwD,IAAI;cAAAgD,SAAA,CAAA/C,EAAA,GAAA5L,gBAAA,CAAAC,OAAA;cAAA0O,SAAA,CAAA9C,EAAA,OAAA7L,gBAAA,CAAAC,OAAA,MAEtB6L,uBAAY,EAAGC,2BAAgB;cAAA4C,SAAA,CAAAjM,IAAA;cAAA,OACX,IAAI,CAACrB,KAAK,CAAC2K,WAAW,CAACC,YAAY,CAAC,CAAC;YAAA;cAAA0C,SAAA,CAAAzC,EAAA,GAAAyC,SAAA,CAAAnG,IAAA;cAAAmG,SAAA,CAAAxC,EAAA,OAAAwC,SAAA,CAAA/C,EAAA,EAAA+C,SAAA,CAAA9C,EAAA,mBAAA8C,SAAA,CAAAzC,EAAA;cAAAyC,SAAA,CAAAvC,EAAA,GAEtD,IAAA9B,UAAA,CAAArK,OAAA,EAAesO,iBAAiB,CAAC;cAAAI,SAAA,CAAAtC,EAAA;gBALvCxK,MAAM,EAAA8M,SAAA,CAAAjD,EAAA;gBACNjD,OAAO,EAAAkG,SAAA,CAAAxC,EAAA;gBAIPxD,IAAI,EAAAgG,SAAA,CAAAvC;cAAA;cAAAuC,SAAA,CAAAjM,IAAA;cAAA,WAAAiM,SAAA,CAAAvE,EAAA,EAAAuE,SAAA,CAAAlD,EAAA,EAAAkD,SAAA,CAAAtC,EAAA;YAAA;cANApB,QAAQ,GAAA0D,SAAA,CAAAnG,IAAA;cAAA,IAQTyC,QAAQ,CAACqB,EAAE;gBAAAqC,SAAA,CAAAjM,IAAA;gBAAA;cAAA;cAAA,MACR,IAAI6J,KAAK,IAAA9E,MAAA,CAAIwD,QAAQ,CAACuB,MAAM,CAAE,CAAC;YAAA;cAGvC5H,eAAG,CAACA,GAAG,yBAAA6C,MAAA,EAAA+G,kBAAA,GAAyBvD,QAAQ,CAACxC,OAAO,cAAA+F,kBAAA,uBAAhBA,kBAAA,CAAkB/J,GAAG,CAAC,YAAY,CAAC,GAAIkD,aAAa,CAAC;cAACgH,SAAA,CAAAjM,IAAA;cAAA,OAEjCuI,QAAQ,CAACwB,IAAI,CAAC,CAAC;YAAA;cAA9D9J,IAAsC,GAAAgM,SAAA,CAAAnG,IAAA;cAC5C5D,eAAG,CAACA,GAAG,yBAAA6C,MAAA,CACmBoD,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEhL,MAAM,4BAClD8H,aACF,CAAC;cACKvB,eAAiD,GAAG;gBACxDoD,UAAU,EAAE7G,IAAI,CAAC6G,UAAoB;gBACrC7G,IAAI,EAAE;kBACJqM,mBAAmB,EAAEI;gBACvB,CAAC;gBACDnF,OAAO,EAAEC;cACX,CAAC;cAAA,OAAAyE,SAAA,CAAAxE,MAAA,WAEM/D,eAAe;YAAA;cAAAuI,SAAA,CAAAlM,IAAA;cAAAkM,SAAA,CAAA/B,EAAA,GAAA+B,SAAA;cAEtB/J,eAAG,CAACyF,KAAK,2CAAA5C,MAAA,CAA2C,IAAA6C,UAAA,CAAArK,OAAA,EAAA0O,SAAA,CAAA/B,EAAkB,CAAC,GAAI;gBACzEjL,IAAI,EAAEC,4BAAiB;gBACvBC,MAAM,EAAEC,kBAAO,CAAC8M;cAClB,CAAC,CAAC;cAACD,SAAA,CAAAjM,IAAA;cAAA,OACG,IAAA6H,iBAAU,EAAC,CAAC;YAAA;cAElB;cACMlE,SAAS,GAAG;gBAChBmD,UAAU,EAAEmF,SAAA,CAAA/B,EAAA,YAAeL,KAAK,GAAGM,MAAM,CAAC8B,SAAA,CAAA/B,EAAA,CAAI3C,OAAO,CAAC,GAAG;cAC3D,CAAC;cACK3D,WAAW,GAAG,IAAAkE,8BAAuB,EAACnE,SAAS,EAAEsB,aAAa,CAAC;cAAA,OAAAgH,SAAA,CAAAxE,MAAA,WAE9D7D,WAAW;YAAA;YAAA;cAAA,OAAAqI,SAAA,CAAA3L,IAAA;UAAA;QAAA,GAAAmL,QAAA;MAAA,CAErB;MAAA,SAAAkB,yBAAAC,GAAA;QAAA,OAAApB,yBAAA,CAAAxO,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAyP,wBAAA;IAAA;EAAA;IAAArK,GAAA;IAAAC,KAAA;IA0BD;AACF;AACA;IACE,SAAAN,yBAAA,EAAmC;MACjC,IAAI,CAACX,YAAY,CAACuL,gBAAgB,CAChCC,yBAAiB,CAACC,4BAA4B,EAC9C,IAAI,CAACC,mBACP,CAAC;MACD,IAAI,CAAC1L,YAAY,CAACuL,gBAAgB,CAChCC,yBAAiB,CAACG,yBAAyB,EAC3C,IAAI,CAACD,mBACP,CAAC;MACD,IAAI,CAAC1L,YAAY,CAACuL,gBAAgB,CAChCC,yBAAiB,CAACI,yBAAyB,EAC3C,IAAI,CAACC,2BACP,CAAC;MACD,IAAI,CAAC7L,YAAY,CAACuL,gBAAgB,CAChCC,yBAAiB,CAACM,0BAA0B,EAC5C,IAAI,CAACC,+BACP,CAAC;IACH;EAAC;EAAA,OAAA/O,WAAA;AAAA,EA3a8BgP,cAAQ;AA6azC;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,uBAAuB,GAAAhP,OAAA,CAAAgP,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAI5O,KAAe,EAAEC,MAAuB;EAAA,OAC9E,IAAIN,WAAW,CAACK,KAAK,EAAEC,MAAM,CAAC;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Logger","_Utils","_constants","_constants2","_types2","_impl","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","_createSuper","_isNativeReflectConstruct","_getPrototypeOf2","s","constructor","_Reflect$construct","_possibleConstructorReturn2","Boolean","prototype","valueOf","call","CallHistory","exports","_Eventing","_inherits2","_super","webex","logger","_this","_classCallCheck2","_assertThisInitialized2","file","CALL_HISTORY_FILE","method","METHODS","GET_CALL_HISTORY_DATA","_ref","_asyncToGenerator2","_regenerator","mark","_callee","event","wrap","_callee$","_context","prev","next","data","userSessions","emit","COMMON_EVENT_KEYS","CALL_HISTORY_USER_SESSION_INFO","stop","_x","_ref2","_callee2","_callee2$","_context2","userReadSessions","CALL_HISTORY_USER_VIEWED_SESSIONS","_x2","_ref3","_callee3","_callee3$","_context3","deletedSessions","CALL_HISTORY_USER_SESSIONS_DELETED","_x3","sdkConnector","SDKConnector","getWebex","setWebex","janusUrl","internal","services","_serviceUrls","janus","registerSessionsListener","log","setLogger","level","_createClass2","key","value","_getCallHistoryData","_callee4","days","limit","sort","sortBy","date","sortByParam","sortParam","url","_janusResponse$header","janusResponse","callingBackend","hasCucmDN","_ucmLinesResponse$dat","ucmLinesResponse","ucmLinesData","responseDetails","extendedError","errorInfo","errorStatus","_args4","_callee4$","_context4","undefined","NUMBER_OF_DAYS","LIMIT","SORT","DEFAULT","SORT_BY","Date","setDate","getDate","fromDate","toISOString","_values","includes","info","concat","METHOD_START_MESSAGE","loggerContext","HISTORY","USER_SESSIONS","FROM_DATE","request","uri","HTTP_METHODS","GET","service","ALLOWED_SERVICES","JANUS","sent","headers","trackingid","body","START_TIME","DESC","element","compareElement","getTime","ASC","getCallingBackEnd","CALLING_BACKEND","UCM","some","session","self","cucmDN","fetchUCMLinesData","statusCode","lines","devices","device","line","dnorpattern","ucmLineNumber","index","STATUS_CODE","message","SUCCESS_MESSAGE","abrupt","t0","Error","error","uploadLogs","serviceErrorCodeHandler","getCallHistoryData","_updateMissedCalls","_callee5","endTimeSessionIds","santizedSessionIds","requestBody","_response$headers","updateMissedCallContentUrl","response","_callee5$","_context5","UPDATE_MISSED_CALLS","map","endTime","_stringify","UPDATE_MISSED_CALLS_ENDPOINT","fetch","t1","t2","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","t8","ok","status","get","json","readStatusMessage","SET_READ_STATE_SUCCESS_MESSAGE","t9","Number","updateMissedCalls","_x4","_fetchUCMLinesData","_callee6","vgEndpoint","userId","orgId","linesURIForUCM","_response$headers2","ucmLineDetails","_callee6$","_context6","FETCH_UCM_LINES_DATA","getVgActionEndpoint","VERSION_1","UNIFIED_COMMUNICATIONS","CONFIG","PEOPLE","LINES","ORG_ID","_deleteCallHistoryRecords","_callee7","deleteSessionIds","invalidSessions","invalidSessionIds","deleteRequestBody","_response$headers3","deleteCallHistoryRecordContentUrl","_callee7$","_context7","DELETE_CALL_HISTORY_RECORDS","_isNan","sessionId","join","deleteStatusMessage","SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE","FAILURE_MESSAGE","DELETE_CALL_HISTORY_RECORDS_ENDPOINT","SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE","deleteCallHistoryRecords","_x5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","handleSessionEvents","CALL_SESSION_EVENT_LEGACY","CALL_SESSION_EVENT_VIEWED","handleUserReadSessionEvents","CALL_SESSION_EVENT_DELETED","handleUserSessionsDeletedEvents","Eventing","createCallHistoryClient"],"sources":["CallHistory.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable no-underscore-dangle */\nimport ExtendedError from '../Errors/catalog/ExtendedError';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n SORT,\n SORT_BY,\n CALLING_BACKEND,\n} from '../common/types';\nimport {\n ICallHistory,\n JanusResponseEvent,\n LoggerInterface,\n UpdateMissedCallsResponse,\n UCMLinesResponse,\n DeleteCallHistoryRecordsResponse,\n} from './types';\nimport log from '../Logger';\nimport {\n serviceErrorCodeHandler,\n getVgActionEndpoint,\n getCallingBackEnd,\n uploadLogs,\n} from '../common/Utils';\nimport {\n APPLICATION_JSON,\n CALL_HISTORY_FILE,\n CONTENT_TYPE,\n FROM_DATE,\n HISTORY,\n LIMIT,\n NUMBER_OF_DAYS,\n UPDATE_MISSED_CALLS_ENDPOINT,\n SET_READ_STATE_SUCCESS_MESSAGE,\n VERSION_1,\n UNIFIED_COMMUNICATIONS,\n CONFIG,\n PEOPLE,\n LINES,\n ORG_ID,\n DELETE_CALL_HISTORY_RECORDS_ENDPOINT,\n SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE,\n SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE,\n METHODS,\n} from './constants';\nimport {\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n USER_SESSIONS,\n} from '../common/constants';\nimport {\n COMMON_EVENT_KEYS,\n CallHistoryEventTypes,\n CallSessionEvent,\n MOBIUS_EVENT_KEYS,\n UserSession,\n EndTimeSessionId,\n CallSessionViewedEvent,\n SanitizedEndTimeAndSessionId,\n UCMLinesApiResponse,\n CallSessionDeletedEvent,\n} from '../Events/types';\nimport {Eventing} from '../Events/impl';\n/**\n * `CallHistory` module is designed to facilitate the retrieval of Call History Records by providing a set of APIs.\n *\n * This code snippet demonstrates how to create an instance of `CallHistory` using webex and logger.\n *\n * @example\n * ```javascript\n * const callHistory = createCallHistoryClient(webex, logger);\n * ```\n */\nexport class CallHistory extends Eventing<CallHistoryEventTypes> implements ICallHistory {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private janusUrl = '';\n\n private fromDate = '';\n\n private loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n };\n\n private userSessions: UserSession[] | undefined;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n super();\n this.sdkConnector = SDKConnector;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.janusUrl = this.webex.internal.services._serviceUrls.janus;\n this.registerSessionsListener();\n log.setLogger(logger.level, CALL_HISTORY_FILE);\n }\n\n /**\n * Function to display the Janus API response.\n * @param days - Number of days to fetch the call history data.\n * @param limit - Number of records to be fetched.\n * @param sort - Sort the records in ascending or descending order.\n * @param sortBy - Sort the records by start time or end time.\n */\n public async getCallHistoryData(\n days: number = NUMBER_OF_DAYS,\n limit: number = LIMIT,\n sort: SORT = SORT.DEFAULT,\n sortBy: SORT_BY = SORT_BY.DEFAULT\n ): Promise<JanusResponseEvent> {\n /*\n 1. Mandatory field for Janus API - fromDate\n 2. Calculating the fromDate by deducting the NUMBER_OF_DAYS with the current date\n */\n const date = new Date();\n\n date.setDate(date.getDate() - days);\n this.fromDate = date.toISOString();\n const sortByParam = Object.values(SORT_BY).includes(sortBy) ? sortBy : SORT_BY.DEFAULT;\n const sortParam = Object.values(SORT).includes(sort) ? sort : SORT.DEFAULT;\n\n log.info(\n `${METHOD_START_MESSAGE} with days=${days}, limit=${limit}, sort=${sortParam}, sortBy=${sortByParam}`,\n this.loggerContext\n );\n\n log.info(`Janus API URL: ${this.janusUrl}`, this.loggerContext);\n log.info(`Call history from date : ${this.fromDate}`, this.loggerContext);\n const url = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}${FROM_DATE}=${this.fromDate}&limit=${limit}&includeNewSessionTypes=true&sort=${sortParam}`;\n\n try {\n const janusResponse = <WebexRequestPayload>await this.webex.request({\n uri: `${url}`,\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.JANUS,\n });\n\n log.log(`Response trackingId: ${janusResponse?.headers?.trackingid}`, this.loggerContext);\n\n this.userSessions = janusResponse.body as UserSession[];\n if (sortByParam === SORT_BY.START_TIME) {\n if (sortParam === SORT.DESC) {\n this.userSessions[USER_SESSIONS].sort(\n (element: Date, compareElement: Date) =>\n new Date(compareElement[sortByParam]).getTime() -\n new Date(element[sortByParam]).getTime()\n );\n } else if (sortParam === SORT.ASC) {\n this.userSessions[USER_SESSIONS].sort(\n (element: Date, compareElement: Date) =>\n new Date(element[sortByParam]).getTime() -\n new Date(compareElement[sortByParam]).getTime()\n );\n }\n }\n // Check the calling backend\n const callingBackend = getCallingBackEnd(this.webex);\n if (callingBackend === CALLING_BACKEND.UCM) {\n // Check if userSessions exist and the length is greater than 0\n if (this.userSessions[USER_SESSIONS] && this.userSessions[USER_SESSIONS].length > 0) {\n // Check if cucmDN exists and is valid in any of the userSessions\n const hasCucmDN = this.userSessions[USER_SESSIONS].some(\n (session: UserSession) => session.self.cucmDN && session.self.cucmDN.length > 0\n );\n // If any user session has cucmDN, proceed to fetch line data\n if (hasCucmDN) {\n // Fetch the Lines data\n const ucmLinesResponse = await this.fetchUCMLinesData();\n\n // Check if the Lines API response was successful\n if (ucmLinesResponse.statusCode === 200 && ucmLinesResponse.data.lines?.devices) {\n const ucmLinesData = ucmLinesResponse.data.lines.devices;\n\n // Iterate over user sessions and match with Lines data\n this.userSessions[USER_SESSIONS].forEach((session: UserSession) => {\n const cucmDN = session.self.cucmDN;\n\n if (cucmDN) {\n ucmLinesData.forEach((device) => {\n device.lines.forEach((line) => {\n if (line.dnorpattern === cucmDN) {\n session.self.ucmLineNumber = line.index; // Assign the ucmLineNumber\n }\n });\n });\n }\n });\n }\n }\n }\n }\n\n const responseDetails = {\n statusCode: this.userSessions[STATUS_CODE],\n data: {\n userSessions: this.userSessions[USER_SESSIONS],\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(\n `Successfully retrieved call history data with ${this.userSessions[USER_SESSIONS].length} records`,\n this.loggerContext\n );\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to get call history: ${err}`) as ExtendedError;\n log.error(extendedError, {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA});\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, this.loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to update the missed call status in the call history using sessionId and time.\n * @param endTimeSessionIds - An array of objects containing endTime and sessionId of the missed call history records\n * @returns {Promise} Resolves to an object of type {@link UpdateMissedCallsResponse}.Response details with success or error status.\n */\n public async updateMissedCalls(\n endTimeSessionIds: EndTimeSessionId[]\n ): Promise<UpdateMissedCallsResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.UPDATE_MISSED_CALLS,\n };\n // Convert endTime to milliseconds for each session\n const santizedSessionIds: SanitizedEndTimeAndSessionId[] = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n const requestBody = {\n endTimeSessionIds: santizedSessionIds,\n };\n\n log.info(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(santizedSessionIds)}`,\n loggerContext\n );\n try {\n const updateMissedCallContentUrl = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}/${UPDATE_MISSED_CALLS_ENDPOINT}`;\n // Make a POST request to update missed calls\n const response = await fetch(updateMissedCallContentUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await this.webex.credentials.getUserToken(),\n },\n body: JSON.stringify(requestBody),\n });\n if (!response.ok) {\n throw new Error(`${response.status}`);\n }\n\n log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);\n\n const data: UpdateMissedCallsResponse = await response.json();\n log.log(`Missed calls are successfully read by the user`, loggerContext);\n const responseDetails: UpdateMissedCallsResponse = {\n statusCode: data.statusCode as number,\n data: {\n readStatusMessage: SET_READ_STATE_SUCCESS_MESSAGE,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully updated ${santizedSessionIds?.length} missed calls`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to update missed calls: ${err}`) as ExtendedError;\n log.error(extendedError, {file: CALL_HISTORY_FILE, method: METHODS.UPDATE_MISSED_CALLS});\n await uploadLogs();\n\n // Catch the 401 error from try block, return the error object to user\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to display the UCM Lines API response.\n * @returns {Promise} Resolves to an object of type {@link UCMLinesResponse}.Response details with success or error status.\n */\n private async fetchUCMLinesData(): Promise<UCMLinesResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n };\n const vgEndpoint = getVgActionEndpoint(this.webex, CALLING_BACKEND.UCM);\n const userId = this.webex.internal.device.userId;\n const orgId = this.webex.internal.device.orgId;\n const linesURIForUCM = `${vgEndpoint}/${VERSION_1}/${UNIFIED_COMMUNICATIONS}/${CONFIG}/${PEOPLE}/${userId}/${LINES}?${ORG_ID}=${orgId}`;\n\n log.info(`${METHOD_START_MESSAGE} with URL: ${linesURIForUCM}`, loggerContext);\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${linesURIForUCM}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const ucmLineDetails: UCMLinesResponse = {\n statusCode: Number(response.statusCode),\n data: {\n lines: response.body as UCMLinesApiResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Line details fetched successfully`, loggerContext);\n\n return ucmLineDetails;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to fetch UCM lines data: ${err}`) as ExtendedError;\n log.error(extendedError, {file: CALL_HISTORY_FILE, method: METHODS.FETCH_UCM_LINES_DATA});\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to delete the call history records using sessionId and endTime.\n * @param deleteSessionIds - An array of objects containing endTime and sessionId of the call history records\n * @returns {Promise} Resolves to an object of type {@link DeleteCallHistoryRecordsResponse}.Response details with success or error status.\n */\n public async deleteCallHistoryRecords(\n deleteSessionIds: EndTimeSessionId[]\n ): Promise<DeleteCallHistoryRecordsResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n };\n\n // Collect all sessions with invalid dates (endTime) in an array\n const invalidSessions = deleteSessionIds.filter((session) =>\n Number.isNaN(new Date(session.endTime).getTime())\n );\n\n log.info(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(deleteSessionIds)}`,\n loggerContext\n );\n\n if (invalidSessions.length > 0) {\n // If there are invalid sessions, return an error with details\n const invalidSessionIds = invalidSessions.map((session) => session.sessionId).join(', ');\n log.info(\n `The provided date is malformed or invalid for session IDs: ${invalidSessionIds}`,\n loggerContext\n );\n\n return {\n statusCode: 400,\n data: {\n deleteStatusMessage: SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE,\n },\n message: FAILURE_MESSAGE,\n };\n }\n\n // Convert endTime to milliseconds for each sessionId\n const santizedSessionIds: SanitizedEndTimeAndSessionId[] = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n\n const deleteRequestBody = {\n deleteSessionIds: santizedSessionIds,\n };\n\n try {\n const deleteCallHistoryRecordContentUrl = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}/${DELETE_CALL_HISTORY_RECORDS_ENDPOINT}`;\n // Make a POST request to delete call history records\n const response = await fetch(deleteCallHistoryRecordContentUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await this.webex.credentials.getUserToken(),\n },\n body: JSON.stringify(deleteRequestBody),\n });\n if (!response.ok) {\n throw new Error(`${response.status}`);\n }\n\n log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);\n\n const data: DeleteCallHistoryRecordsResponse = await response.json();\n log.log(\n `Successfully deleted ${santizedSessionIds?.length} call history records`,\n loggerContext\n );\n const responseDetails: DeleteCallHistoryRecordsResponse = {\n statusCode: data.statusCode as number,\n data: {\n deleteStatusMessage: SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE,\n },\n message: SUCCESS_MESSAGE,\n };\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(\n `Failed to delete call history records: ${err}`\n ) as ExtendedError;\n log.error(extendedError, {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n });\n await uploadLogs();\n\n // Catch the 401 error from try block, return the error object to user\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n handleSessionEvents = async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n this.emit(COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO, event as CallSessionEvent);\n }\n };\n\n handleUserReadSessionEvents = async (event?: CallSessionViewedEvent) => {\n if (event && event.data.userReadSessions.userReadSessions) {\n this.emit(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS,\n event as CallSessionViewedEvent\n );\n }\n };\n\n handleUserSessionsDeletedEvents = async (event?: CallSessionDeletedEvent) => {\n if (event && event.data.deletedSessions) {\n this.emit(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED,\n event as CallSessionDeletedEvent\n );\n }\n };\n\n /**\n *\n */\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n this.handleSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY,\n this.handleSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionViewedEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED,\n this.handleUserReadSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionDeletedEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED,\n this.handleUserSessionsDeletedEvents\n );\n }\n}\n/**\n * Creates a `CallHistory` client instance for accessing Call History APIs.\n *\n * @param {WebexSDK} webex - `Webex SDK` instance.\n * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.\n */\nexport const createCallHistoryClient = (webex: WebexSDK, logger: LoggerInterface): ICallHistory =>\n new CallHistory(webex, logger);\n"],"mappings":"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","ignoreList":[]}
@@ -9,8 +9,8 @@ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/de
9
9
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
10
10
  var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
11
11
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
12
- var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
13
12
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
13
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
14
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
16
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
@@ -99,10 +99,7 @@ describe('Call history tests', function () {
99
99
  file: _constants.CALL_HISTORY_FILE,
100
100
  method: _constants.METHODS.GET_CALL_HISTORY_DATA
101
101
  });
102
- expect(errorSpy).toHaveBeenCalledWith("Failed to get call history: ".concat((0, _stringify.default)(failurePayload)), {
103
- file: _constants.CALL_HISTORY_FILE,
104
- method: _constants.METHODS.GET_CALL_HISTORY_DATA
105
- });
102
+ expect(errorSpy).toHaveBeenCalled();
106
103
  expect(uploadLogsSpy).toHaveBeenCalledTimes(1);
107
104
  case 11:
108
105
  case "end":
@@ -132,10 +129,7 @@ describe('Call history tests', function () {
132
129
  file: _constants.CALL_HISTORY_FILE,
133
130
  method: _constants.METHODS.GET_CALL_HISTORY_DATA
134
131
  });
135
- expect(errorSpy).toHaveBeenCalledWith("Failed to get call history: ".concat((0, _stringify.default)(failurePayload)), {
136
- file: _constants.CALL_HISTORY_FILE,
137
- method: _constants.METHODS.GET_CALL_HISTORY_DATA
138
- });
132
+ expect(errorSpy).toHaveBeenCalled();
139
133
  expect(uploadLogsSpy).toHaveBeenCalledTimes(1);
140
134
  case 11:
141
135
  case "end":
@@ -367,7 +361,7 @@ describe('Call history tests', function () {
367
361
  expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith({
368
362
  statusCode: 400
369
363
  }, methodDetails);
370
- expect(errorSpy).toBeCalledWith(expect.stringContaining('Failed to update missed calls'), methodDetails);
364
+ expect(errorSpy).toHaveBeenCalled();
371
365
  expect(uploadLogsSpy).toHaveBeenCalledTimes(1);
372
366
  case 23:
373
367
  case "end":
@@ -772,7 +766,7 @@ describe('Call history tests', function () {
772
766
  expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith({
773
767
  statusCode: 401
774
768
  }, methodDetails);
775
- expect(errorSpy).toBeCalledWith(expect.stringContaining('Failed to delete call history records'), {
769
+ expect(errorSpy).toHaveBeenCalledWith(expect.any(Error), {
776
770
  file: _constants.CALL_HISTORY_FILE,
777
771
  method: _constants.METHODS.DELETE_CALL_HISTORY_RECORDS
778
772
  });
@@ -815,114 +809,5 @@ describe('Call history tests', function () {
815
809
  }, _callee19);
816
810
  })));
817
811
  });
818
- describe('URL construction for shared sessions based on calling backend', function () {
819
- var webexRequestSpy;
820
- beforeEach(function () {
821
- webexRequestSpy = jest.spyOn(webex, 'request').mockResolvedValue({
822
- statusCode: 200,
823
- body: {
824
- statusCode: 200,
825
- userSessions: []
826
- }
827
- });
828
- });
829
- afterEach(function () {
830
- jest.restoreAllMocks();
831
- });
832
- it('should include includeSharedSessions=true for WXC backend', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee20() {
833
- var callArgs;
834
- return _regenerator.default.wrap(function _callee20$(_context20) {
835
- while (1) switch (_context20.prev = _context20.next) {
836
- case 0:
837
- jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(_types2.CALLING_BACKEND.WXC);
838
- _context20.next = 3;
839
- return callHistory.getCallHistoryData(7, 10, _types2.SORT.DEFAULT, _types2.SORT_BY.DEFAULT);
840
- case 3:
841
- callArgs = webexRequestSpy.mock.calls[0][0];
842
- expect(callArgs.uri).toContain('&includeSharedSessions=true');
843
- expect(callArgs.method).toBe(_types2.HTTP_METHODS.GET);
844
- expect(callArgs.service).toBe('janus');
845
- case 7:
846
- case "end":
847
- return _context20.stop();
848
- }
849
- }, _callee20);
850
- })));
851
- it('should NOT include includeSharedSessions for UCM backend', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee21() {
852
- var callArgs;
853
- return _regenerator.default.wrap(function _callee21$(_context21) {
854
- while (1) switch (_context21.prev = _context21.next) {
855
- case 0:
856
- jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(_types2.CALLING_BACKEND.UCM);
857
- _context21.next = 3;
858
- return callHistory.getCallHistoryData(7, 10, _types2.SORT.DEFAULT, _types2.SORT_BY.DEFAULT);
859
- case 3:
860
- callArgs = webexRequestSpy.mock.calls[0][0];
861
- expect(callArgs.uri).not.toContain('includeSharedSessions');
862
- expect(callArgs.method).toBe(_types2.HTTP_METHODS.GET);
863
- expect(callArgs.service).toBe('janus');
864
- case 7:
865
- case "end":
866
- return _context21.stop();
867
- }
868
- }, _callee21);
869
- })));
870
- it('should NOT include includeSharedSessions for BWRKS backend', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee22() {
871
- var callArgs;
872
- return _regenerator.default.wrap(function _callee22$(_context22) {
873
- while (1) switch (_context22.prev = _context22.next) {
874
- case 0:
875
- jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(_types2.CALLING_BACKEND.BWRKS);
876
- _context22.next = 3;
877
- return callHistory.getCallHistoryData(7, 10, _types2.SORT.DEFAULT, _types2.SORT_BY.DEFAULT);
878
- case 3:
879
- callArgs = webexRequestSpy.mock.calls[0][0];
880
- expect(callArgs.uri).not.toContain('includeSharedSessions');
881
- expect(callArgs.method).toBe(_types2.HTTP_METHODS.GET);
882
- expect(callArgs.service).toBe('janus');
883
- case 7:
884
- case "end":
885
- return _context22.stop();
886
- }
887
- }, _callee22);
888
- })));
889
- it('should NOT include includeSharedSessions for unknown/other backends', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee23() {
890
- var callArgs;
891
- return _regenerator.default.wrap(function _callee23$(_context23) {
892
- while (1) switch (_context23.prev = _context23.next) {
893
- case 0:
894
- jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue('OTHER_BACKEND');
895
- _context23.next = 3;
896
- return callHistory.getCallHistoryData(7, 10, _types2.SORT.DEFAULT, _types2.SORT_BY.DEFAULT);
897
- case 3:
898
- callArgs = webexRequestSpy.mock.calls[0][0];
899
- expect(callArgs.uri).not.toContain('includeSharedSessions');
900
- expect(callArgs.method).toBe(_types2.HTTP_METHODS.GET);
901
- expect(callArgs.service).toBe('janus');
902
- case 7:
903
- case "end":
904
- return _context23.stop();
905
- }
906
- }, _callee23);
907
- })));
908
- it('should construct URL correctly with base parameters for all backends', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee24() {
909
- var callArgs;
910
- return _regenerator.default.wrap(function _callee24$(_context24) {
911
- while (1) switch (_context24.prev = _context24.next) {
912
- case 0:
913
- jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(_types2.CALLING_BACKEND.WXC);
914
- _context24.next = 3;
915
- return callHistory.getCallHistoryData(7, 10, _types2.SORT.DEFAULT, _types2.SORT_BY.DEFAULT);
916
- case 3:
917
- callArgs = webexRequestSpy.mock.calls[0][0];
918
- expect(callArgs.uri).toMatch(/.*\/history\/userSessions.*limit=10.*includeNewSessionTypes=true.*sort=DESC.*/);
919
- expect(callArgs.uri).toContain('&includeSharedSessions=true');
920
- case 6:
921
- case "end":
922
- return _context24.stop();
923
- }
924
- }, _callee24);
925
- })));
926
- });
927
812
  });
928
813
  //# sourceMappingURL=CallHistory.test.js.map