@webex/calling 3.8.0 → 3.8.1-next.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 (166) hide show
  1. package/dist/CallHistory/CallHistory.js +100 -63
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +115 -19
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/constants.js +9 -1
  6. package/dist/CallHistory/constants.js.map +1 -1
  7. package/dist/CallSettings/CallSettings.js +46 -13
  8. package/dist/CallSettings/CallSettings.js.map +1 -1
  9. package/dist/CallSettings/UcmBackendConnector.js +62 -18
  10. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.test.js +70 -7
  12. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  13. package/dist/CallSettings/WxCallBackendConnector.js +153 -103
  14. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.test.js +52 -15
  16. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  17. package/dist/CallSettings/constants.js +15 -1
  18. package/dist/CallSettings/constants.js.map +1 -1
  19. package/dist/CallingClient/CallingClient.js +220 -159
  20. package/dist/CallingClient/CallingClient.js.map +1 -1
  21. package/dist/CallingClient/CallingClient.test.js +53 -24
  22. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  23. package/dist/CallingClient/calling/call.js +251 -189
  24. package/dist/CallingClient/calling/call.js.map +1 -1
  25. package/dist/CallingClient/calling/call.test.js +96 -41
  26. package/dist/CallingClient/calling/call.test.js.map +1 -1
  27. package/dist/CallingClient/calling/callManager.js +73 -48
  28. package/dist/CallingClient/calling/callManager.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.test.js +96 -37
  30. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  31. package/dist/CallingClient/constants.js +105 -3
  32. package/dist/CallingClient/constants.js.map +1 -1
  33. package/dist/CallingClient/line/index.js +47 -18
  34. package/dist/CallingClient/line/index.js.map +1 -1
  35. package/dist/CallingClient/line/line.test.js +2 -2
  36. package/dist/CallingClient/line/line.test.js.map +1 -1
  37. package/dist/CallingClient/registration/register.js +359 -297
  38. package/dist/CallingClient/registration/register.js.map +1 -1
  39. package/dist/CallingClient/registration/register.test.js +561 -163
  40. package/dist/CallingClient/registration/register.test.js.map +1 -1
  41. package/dist/CallingClient/registration/types.js.map +1 -1
  42. package/dist/Contacts/ContactsClient.js +156 -102
  43. package/dist/Contacts/ContactsClient.js.map +1 -1
  44. package/dist/Contacts/ContactsClient.test.js +197 -49
  45. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  46. package/dist/Contacts/constants.js +11 -1
  47. package/dist/Contacts/constants.js.map +1 -1
  48. package/dist/Errors/types.js +2 -0
  49. package/dist/Errors/types.js.map +1 -1
  50. package/dist/Events/impl/index.js +1 -1
  51. package/dist/Events/impl/index.js.map +1 -1
  52. package/dist/Metrics/index.js +102 -41
  53. package/dist/Metrics/index.js.map +1 -1
  54. package/dist/Metrics/index.test.js +10 -4
  55. package/dist/Metrics/index.test.js.map +1 -1
  56. package/dist/Metrics/types.js +4 -1
  57. package/dist/Metrics/types.js.map +1 -1
  58. package/dist/SDKConnector/types.js.map +1 -1
  59. package/dist/Voicemail/BroadworksBackendConnector.js +154 -91
  60. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  61. package/dist/Voicemail/BroadworksBackendConnector.test.js +99 -19
  62. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  63. package/dist/Voicemail/UcmBackendConnector.js +105 -54
  64. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  65. package/dist/Voicemail/UcmBackendConnector.test.js +127 -17
  66. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  67. package/dist/Voicemail/Voicemail.js +198 -79
  68. package/dist/Voicemail/Voicemail.js.map +1 -1
  69. package/dist/Voicemail/Voicemail.test.js +188 -23
  70. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  71. package/dist/Voicemail/WxCallBackendConnector.js +277 -161
  72. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  73. package/dist/Voicemail/WxCallBackendConnector.test.js +268 -10
  74. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  75. package/dist/Voicemail/constants.js +25 -1
  76. package/dist/Voicemail/constants.js.map +1 -1
  77. package/dist/Voicemail/types.js.map +1 -1
  78. package/dist/common/Utils.js +168 -104
  79. package/dist/common/Utils.js.map +1 -1
  80. package/dist/common/Utils.test.js +199 -35
  81. package/dist/common/Utils.test.js.map +1 -1
  82. package/dist/common/constants.js +2 -1
  83. package/dist/common/constants.js.map +1 -1
  84. package/dist/common/testUtil.js +3 -0
  85. package/dist/common/testUtil.js.map +1 -1
  86. package/dist/common/types.js.map +1 -1
  87. package/dist/index.js +12 -0
  88. package/dist/index.js.map +1 -1
  89. package/dist/module/CallHistory/CallHistory.js +32 -13
  90. package/dist/module/CallHistory/constants.js +6 -0
  91. package/dist/module/CallSettings/CallSettings.js +36 -3
  92. package/dist/module/CallSettings/UcmBackendConnector.js +50 -5
  93. package/dist/module/CallSettings/WxCallBackendConnector.js +54 -18
  94. package/dist/module/CallSettings/constants.js +12 -0
  95. package/dist/module/CallingClient/CallingClient.js +54 -16
  96. package/dist/module/CallingClient/calling/call.js +172 -121
  97. package/dist/module/CallingClient/calling/callManager.js +51 -26
  98. package/dist/module/CallingClient/constants.js +102 -2
  99. package/dist/module/CallingClient/line/index.js +37 -8
  100. package/dist/module/CallingClient/registration/register.js +103 -64
  101. package/dist/module/Contacts/ContactsClient.js +65 -21
  102. package/dist/module/Contacts/constants.js +10 -0
  103. package/dist/module/Errors/types.js +2 -0
  104. package/dist/module/Events/impl/index.js +1 -1
  105. package/dist/module/Metrics/index.js +57 -2
  106. package/dist/module/Metrics/types.js +3 -0
  107. package/dist/module/Voicemail/BroadworksBackendConnector.js +66 -17
  108. package/dist/module/Voicemail/UcmBackendConnector.js +51 -11
  109. package/dist/module/Voicemail/Voicemail.js +109 -9
  110. package/dist/module/Voicemail/WxCallBackendConnector.js +67 -18
  111. package/dist/module/Voicemail/constants.js +21 -0
  112. package/dist/module/common/Utils.js +51 -12
  113. package/dist/module/common/constants.js +1 -0
  114. package/dist/module/common/testUtil.js +3 -0
  115. package/dist/module/index.js +1 -0
  116. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  117. package/dist/types/CallHistory/constants.d.ts +6 -0
  118. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  119. package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
  120. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  121. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  122. package/dist/types/CallSettings/constants.d.ts +12 -0
  123. package/dist/types/CallSettings/constants.d.ts.map +1 -1
  124. package/dist/types/CallingClient/CallingClient.d.ts +2 -3
  125. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  126. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  127. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  128. package/dist/types/CallingClient/constants.d.ts +102 -2
  129. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  130. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  131. package/dist/types/CallingClient/registration/register.d.ts +3 -1
  132. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  133. package/dist/types/CallingClient/registration/types.d.ts +1 -0
  134. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  135. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  136. package/dist/types/Contacts/constants.d.ts +10 -0
  137. package/dist/types/Contacts/constants.d.ts.map +1 -1
  138. package/dist/types/Errors/types.d.ts +2 -0
  139. package/dist/types/Errors/types.d.ts.map +1 -1
  140. package/dist/types/Metrics/index.d.ts +1 -1
  141. package/dist/types/Metrics/index.d.ts.map +1 -1
  142. package/dist/types/Metrics/types.d.ts +7 -2
  143. package/dist/types/Metrics/types.d.ts.map +1 -1
  144. package/dist/types/SDKConnector/types.d.ts +11 -2
  145. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  146. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  147. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  148. package/dist/types/Voicemail/Voicemail.d.ts +1 -1
  149. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  150. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +3 -1
  151. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  152. package/dist/types/Voicemail/constants.d.ts +21 -0
  153. package/dist/types/Voicemail/constants.d.ts.map +1 -1
  154. package/dist/types/Voicemail/types.d.ts +1 -1
  155. package/dist/types/Voicemail/types.d.ts.map +1 -1
  156. package/dist/types/common/Utils.d.ts +4 -4
  157. package/dist/types/common/Utils.d.ts.map +1 -1
  158. package/dist/types/common/constants.d.ts +1 -0
  159. package/dist/types/common/constants.d.ts.map +1 -1
  160. package/dist/types/common/testUtil.d.ts +3 -0
  161. package/dist/types/common/testUtil.d.ts.map +1 -1
  162. package/dist/types/common/types.d.ts +12 -0
  163. package/dist/types/common/types.d.ts.map +1 -1
  164. package/dist/types/index.d.ts +2 -0
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/package.json +4 -3
@@ -62,7 +62,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
62
62
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fromDate", '');
63
63
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loggerContext", {
64
64
  file: _constants.CALL_HISTORY_FILE,
65
- method: 'getCallHistoryData'
65
+ method: _constants.METHODS.GET_CALL_HISTORY_DATA
66
66
  });
67
67
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "userSessions", void 0);
68
68
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleSessionEvents", /*#__PURE__*/function () {
@@ -156,6 +156,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
156
156
  ucmLinesResponse,
157
157
  ucmLinesData,
158
158
  responseDetails,
159
+ extendedError,
159
160
  errorInfo,
160
161
  errorStatus,
161
162
  _args4 = arguments;
@@ -175,19 +176,18 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
175
176
  this.fromDate = date.toISOString();
176
177
  sortByParam = (0, _values.default)(_types.SORT_BY).includes(sortBy) ? sortBy : _types.SORT_BY.DEFAULT;
177
178
  sortParam = (0, _values.default)(_types.SORT).includes(sort) ? sort : _types.SORT.DEFAULT;
178
- _Logger.default.log("Janus API URL ".concat(this.janusUrl), this.loggerContext);
179
+ _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with days=").concat(days, ", limit=").concat(limit, ", sort=").concat(sortParam, ", sortBy=").concat(sortByParam), this.loggerContext);
180
+ _Logger.default.info("Janus API URL: ".concat(this.janusUrl), this.loggerContext);
179
181
  _Logger.default.info("Call history from date : ".concat(this.fromDate), this.loggerContext);
180
- _Logger.default.info("Call history sort type : ".concat(sortParam), this.loggerContext);
181
- _Logger.default.info("Call history sortby type : ".concat(sortByParam), this.loggerContext);
182
182
  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);
183
- _context4.prev = 14;
184
- _context4.next = 17;
183
+ _context4.prev = 13;
184
+ _context4.next = 16;
185
185
  return this.webex.request({
186
186
  uri: "".concat(url),
187
187
  method: _types.HTTP_METHODS.GET,
188
188
  service: _types.ALLOWED_SERVICES.JANUS
189
189
  });
190
- case 17:
190
+ case 16:
191
191
  janusResponse = _context4.sent;
192
192
  this.userSessions = janusResponse.body;
193
193
  if (sortByParam === _types.SORT_BY.START_TIME) {
@@ -204,11 +204,11 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
204
204
  // Check the calling backend
205
205
  callingBackend = (0, _Utils.getCallingBackEnd)(this.webex);
206
206
  if (!(callingBackend === _types.CALLING_BACKEND.UCM)) {
207
- _context4.next = 29;
207
+ _context4.next = 28;
208
208
  break;
209
209
  }
210
210
  if (!(this.userSessions[_constants2.USER_SESSIONS] && this.userSessions[_constants2.USER_SESSIONS].length > 0)) {
211
- _context4.next = 29;
211
+ _context4.next = 28;
212
212
  break;
213
213
  }
214
214
  // Check if cucmDN exists and is valid in any of the userSessions
@@ -216,12 +216,12 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
216
216
  return session.self.cucmDN && session.self.cucmDN.length > 0;
217
217
  }); // If any user session has cucmDN, proceed to fetch line data
218
218
  if (!hasCucmDN) {
219
- _context4.next = 29;
219
+ _context4.next = 28;
220
220
  break;
221
221
  }
222
- _context4.next = 27;
222
+ _context4.next = 26;
223
223
  return this.fetchUCMLinesData();
224
- case 27:
224
+ case 26:
225
225
  ucmLinesResponse = _context4.sent;
226
226
  // Check if the Lines API response was successful
227
227
  if (ucmLinesResponse.statusCode === 200 && (_ucmLinesResponse$dat = ucmLinesResponse.data.lines) !== null && _ucmLinesResponse$dat !== void 0 && _ucmLinesResponse$dat.devices) {
@@ -239,7 +239,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
239
239
  }
240
240
  });
241
241
  }
242
- case 29:
242
+ case 28:
243
243
  responseDetails = {
244
244
  statusCode: this.userSessions[_constants2.STATUS_CODE],
245
245
  data: {
@@ -247,18 +247,27 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
247
247
  },
248
248
  message: _constants2.SUCCESS_MESSAGE
249
249
  };
250
+ _Logger.default.log("Successfully retrieved call history data with ".concat(this.userSessions[_constants2.USER_SESSIONS].length, " records"), this.loggerContext);
250
251
  return _context4.abrupt("return", responseDetails);
251
252
  case 33:
252
253
  _context4.prev = 33;
253
- _context4.t0 = _context4["catch"](14);
254
+ _context4.t0 = _context4["catch"](13);
255
+ extendedError = new Error("Failed to get call history: ".concat(_context4.t0));
256
+ _Logger.default.error(extendedError, {
257
+ file: _constants.CALL_HISTORY_FILE,
258
+ method: _constants.METHODS.GET_CALL_HISTORY_DATA
259
+ });
260
+ _context4.next = 39;
261
+ return (0, _Utils.uploadLogs)();
262
+ case 39:
254
263
  errorInfo = _context4.t0;
255
264
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, this.loggerContext);
256
265
  return _context4.abrupt("return", errorStatus);
257
- case 38:
266
+ case 42:
258
267
  case "end":
259
268
  return _context4.stop();
260
269
  }
261
- }, _callee4, this, [[14, 33]]);
270
+ }, _callee4, this, [[13, 33]]);
262
271
  }));
263
272
  function getCallHistoryData() {
264
273
  return _getCallHistoryData.apply(this, arguments);
@@ -275,13 +284,13 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
275
284
  key: "updateMissedCalls",
276
285
  value: (function () {
277
286
  var _updateMissedCalls = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(endTimeSessionIds) {
278
- var loggerContext, santizedSessionIds, requestBody, updateMissedCallContentUrl, response, data, responseDetails, errorInfo, errorStatus;
287
+ var loggerContext, santizedSessionIds, requestBody, updateMissedCallContentUrl, response, data, responseDetails, extendedError, errorInfo, errorStatus;
279
288
  return _regenerator.default.wrap(function _callee5$(_context5) {
280
289
  while (1) switch (_context5.prev = _context5.next) {
281
290
  case 0:
282
291
  loggerContext = {
283
292
  file: _constants.CALL_HISTORY_FILE,
284
- method: 'updateMissedCalls'
293
+ method: _constants.METHODS.UPDATE_MISSED_CALLS
285
294
  }; // Convert endTime to milliseconds for each session
286
295
  santizedSessionIds = endTimeSessionIds.map(function (session) {
287
296
  return _objectSpread(_objectSpread({}, session), {}, {
@@ -291,16 +300,17 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
291
300
  requestBody = {
292
301
  endTimeSessionIds: santizedSessionIds
293
302
  };
294
- _context5.prev = 3;
303
+ _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with sessions: ").concat((0, _stringify.default)(santizedSessionIds)), loggerContext);
304
+ _context5.prev = 4;
295
305
  updateMissedCallContentUrl = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS, "/").concat(_constants.UPDATE_MISSED_CALLS_ENDPOINT); // Make a POST request to update missed calls
296
306
  _context5.t0 = fetch;
297
307
  _context5.t1 = updateMissedCallContentUrl;
298
308
  _context5.t2 = _types.HTTP_METHODS.POST;
299
309
  _context5.t3 = _defineProperty2.default;
300
310
  _context5.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
301
- _context5.next = 12;
311
+ _context5.next = 13;
302
312
  return this.webex.credentials.getUserToken();
303
- case 12:
313
+ case 13:
304
314
  _context5.t5 = _context5.sent;
305
315
  _context5.t6 = (0, _context5.t3)(_context5.t4, "Authorization", _context5.t5);
306
316
  _context5.t7 = (0, _stringify.default)(requestBody);
@@ -309,21 +319,21 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
309
319
  headers: _context5.t6,
310
320
  body: _context5.t7
311
321
  };
312
- _context5.next = 18;
322
+ _context5.next = 19;
313
323
  return (0, _context5.t0)(_context5.t1, _context5.t8);
314
- case 18:
324
+ case 19:
315
325
  response = _context5.sent;
316
326
  if (response.ok) {
317
- _context5.next = 21;
327
+ _context5.next = 22;
318
328
  break;
319
329
  }
320
330
  throw new Error("".concat(response.status));
321
- case 21:
322
- _context5.next = 23;
331
+ case 22:
332
+ _context5.next = 24;
323
333
  return response.json();
324
- case 23:
334
+ case 24:
325
335
  data = _context5.sent;
326
- _Logger.default.info("Missed calls are succesfully read by the user", loggerContext);
336
+ _Logger.default.log("Missed calls are successfully read by the user", loggerContext);
327
337
  responseDetails = {
328
338
  statusCode: data.statusCode,
329
339
  data: {
@@ -331,21 +341,30 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
331
341
  },
332
342
  message: _constants2.SUCCESS_MESSAGE
333
343
  };
344
+ _Logger.default.log("Successfully updated ".concat(santizedSessionIds === null || santizedSessionIds === void 0 ? void 0 : santizedSessionIds.length, " missed calls"), loggerContext);
334
345
  return _context5.abrupt("return", responseDetails);
335
- case 29:
336
- _context5.prev = 29;
337
- _context5.t9 = _context5["catch"](3);
346
+ case 31:
347
+ _context5.prev = 31;
348
+ _context5.t9 = _context5["catch"](4);
349
+ extendedError = new Error("Failed to update missed calls: ".concat(_context5.t9));
350
+ _Logger.default.error(extendedError, {
351
+ file: _constants.CALL_HISTORY_FILE,
352
+ method: _constants.METHODS.UPDATE_MISSED_CALLS
353
+ });
354
+ _context5.next = 37;
355
+ return (0, _Utils.uploadLogs)();
356
+ case 37:
338
357
  // Catch the 401 error from try block, return the error object to user
339
358
  errorInfo = {
340
359
  statusCode: _context5.t9 instanceof Error ? Number(_context5.t9.message) : ''
341
360
  };
342
361
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
343
362
  return _context5.abrupt("return", errorStatus);
344
- case 34:
363
+ case 40:
345
364
  case "end":
346
365
  return _context5.stop();
347
366
  }
348
- }, _callee5, this, [[3, 29]]);
367
+ }, _callee5, this, [[4, 31]]);
349
368
  }));
350
369
  function updateMissedCalls(_x4) {
351
370
  return _updateMissedCalls.apply(this, arguments);
@@ -361,25 +380,26 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
361
380
  key: "fetchUCMLinesData",
362
381
  value: (function () {
363
382
  var _fetchUCMLinesData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
364
- var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, response, ucmLineDetails, errorInfo, errorStatus;
383
+ var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, response, ucmLineDetails, extendedError, errorInfo, errorStatus;
365
384
  return _regenerator.default.wrap(function _callee6$(_context6) {
366
385
  while (1) switch (_context6.prev = _context6.next) {
367
386
  case 0:
368
387
  loggerContext = {
369
388
  file: _constants.CALL_HISTORY_FILE,
370
- method: 'fetchLinesData'
389
+ method: _constants.METHODS.FETCH_UCM_LINES_DATA
371
390
  };
372
391
  vgEndpoint = (0, _Utils.getVgActionEndpoint)(this.webex, _types.CALLING_BACKEND.UCM);
373
392
  userId = this.webex.internal.device.userId;
374
393
  orgId = this.webex.internal.device.orgId;
375
394
  linesURIForUCM = "".concat(vgEndpoint, "/").concat(_constants.VERSION_1, "/").concat(_constants.UNIFIED_COMMUNICATIONS, "/").concat(_constants.CONFIG, "/").concat(_constants.PEOPLE, "/").concat(userId, "/").concat(_constants.LINES, "?").concat(_constants.ORG_ID, "=").concat(orgId);
376
- _context6.prev = 5;
377
- _context6.next = 8;
395
+ _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with URL: ").concat(linesURIForUCM), loggerContext);
396
+ _context6.prev = 6;
397
+ _context6.next = 9;
378
398
  return this.webex.request({
379
399
  uri: "".concat(linesURIForUCM),
380
400
  method: _types.HTTP_METHODS.GET
381
401
  });
382
- case 8:
402
+ case 9:
383
403
  response = _context6.sent;
384
404
  ucmLineDetails = {
385
405
  statusCode: Number(response.statusCode),
@@ -388,19 +408,27 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
388
408
  },
389
409
  message: _constants2.SUCCESS_MESSAGE
390
410
  };
391
- _Logger.default.info("Line details fetched successfully", loggerContext);
411
+ _Logger.default.log("Line details fetched successfully", loggerContext);
392
412
  return _context6.abrupt("return", ucmLineDetails);
393
- case 14:
394
- _context6.prev = 14;
395
- _context6.t0 = _context6["catch"](5);
413
+ case 15:
414
+ _context6.prev = 15;
415
+ _context6.t0 = _context6["catch"](6);
416
+ extendedError = new Error("Failed to fetch UCM lines data: ".concat(_context6.t0));
417
+ _Logger.default.error(extendedError, {
418
+ file: _constants.CALL_HISTORY_FILE,
419
+ method: _constants.METHODS.FETCH_UCM_LINES_DATA
420
+ });
421
+ _context6.next = 21;
422
+ return (0, _Utils.uploadLogs)();
423
+ case 21:
396
424
  errorInfo = _context6.t0;
397
425
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
398
426
  return _context6.abrupt("return", errorStatus);
399
- case 19:
427
+ case 24:
400
428
  case "end":
401
429
  return _context6.stop();
402
430
  }
403
- }, _callee6, this, [[5, 14]]);
431
+ }, _callee6, this, [[6, 15]]);
404
432
  }));
405
433
  function fetchUCMLinesData() {
406
434
  return _fetchUCMLinesData.apply(this, arguments);
@@ -417,19 +445,20 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
417
445
  key: "deleteCallHistoryRecords",
418
446
  value: (function () {
419
447
  var _deleteCallHistoryRecords = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(deleteSessionIds) {
420
- var loggerContext, invalidSessions, invalidSessionIds, santizedSessionIds, deleteRequestBody, deleteCallHistoryRecordContentUrl, response, data, responseDetails, errorInfo, errorStatus;
448
+ var loggerContext, invalidSessions, invalidSessionIds, santizedSessionIds, deleteRequestBody, deleteCallHistoryRecordContentUrl, response, data, responseDetails, extendedError, errorInfo, errorStatus;
421
449
  return _regenerator.default.wrap(function _callee7$(_context7) {
422
450
  while (1) switch (_context7.prev = _context7.next) {
423
451
  case 0:
424
452
  loggerContext = {
425
453
  file: _constants.CALL_HISTORY_FILE,
426
- method: 'deleteCallHistoryRecords'
454
+ method: _constants.METHODS.DELETE_CALL_HISTORY_RECORDS
427
455
  }; // Collect all sessions with invalid dates (endTime) in an array
428
456
  invalidSessions = deleteSessionIds.filter(function (session) {
429
457
  return (0, _isNan.default)(new Date(session.endTime).getTime());
430
458
  });
459
+ _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with sessions: ").concat((0, _stringify.default)(deleteSessionIds)), loggerContext);
431
460
  if (!(invalidSessions.length > 0)) {
432
- _context7.next = 6;
461
+ _context7.next = 7;
433
462
  break;
434
463
  }
435
464
  // If there are invalid sessions, return an error with details
@@ -444,7 +473,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
444
473
  },
445
474
  message: _constants2.FAILURE_MESSAGE
446
475
  });
447
- case 6:
476
+ case 7:
448
477
  // Convert endTime to milliseconds for each sessionId
449
478
  santizedSessionIds = deleteSessionIds.map(function (session) {
450
479
  return _objectSpread(_objectSpread({}, session), {}, {
@@ -454,16 +483,16 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
454
483
  deleteRequestBody = {
455
484
  deleteSessionIds: santizedSessionIds
456
485
  };
457
- _context7.prev = 8;
486
+ _context7.prev = 9;
458
487
  deleteCallHistoryRecordContentUrl = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS, "/").concat(_constants.DELETE_CALL_HISTORY_RECORDS_ENDPOINT); // Make a POST request to delete call history records
459
488
  _context7.t0 = fetch;
460
489
  _context7.t1 = deleteCallHistoryRecordContentUrl;
461
490
  _context7.t2 = _types.HTTP_METHODS.POST;
462
491
  _context7.t3 = _defineProperty2.default;
463
492
  _context7.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
464
- _context7.next = 17;
493
+ _context7.next = 18;
465
494
  return this.webex.credentials.getUserToken();
466
- case 17:
495
+ case 18:
467
496
  _context7.t5 = _context7.sent;
468
497
  _context7.t6 = (0, _context7.t3)(_context7.t4, "Authorization", _context7.t5);
469
498
  _context7.t7 = (0, _stringify.default)(deleteRequestBody);
@@ -472,21 +501,21 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
472
501
  headers: _context7.t6,
473
502
  body: _context7.t7
474
503
  };
475
- _context7.next = 23;
504
+ _context7.next = 24;
476
505
  return (0, _context7.t0)(_context7.t1, _context7.t8);
477
- case 23:
506
+ case 24:
478
507
  response = _context7.sent;
479
508
  if (response.ok) {
480
- _context7.next = 26;
509
+ _context7.next = 27;
481
510
  break;
482
511
  }
483
512
  throw new Error("".concat(response.status));
484
- case 26:
485
- _context7.next = 28;
513
+ case 27:
514
+ _context7.next = 29;
486
515
  return response.json();
487
- case 28:
516
+ case 29:
488
517
  data = _context7.sent;
489
- _Logger.default.info("Call history records are succesfully deleted by the user", loggerContext);
518
+ _Logger.default.log("Successfully deleted ".concat(santizedSessionIds === null || santizedSessionIds === void 0 ? void 0 : santizedSessionIds.length, " call history records"), loggerContext);
490
519
  responseDetails = {
491
520
  statusCode: data.statusCode,
492
521
  data: {
@@ -495,20 +524,28 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
495
524
  message: _constants2.SUCCESS_MESSAGE
496
525
  };
497
526
  return _context7.abrupt("return", responseDetails);
498
- case 34:
499
- _context7.prev = 34;
500
- _context7.t9 = _context7["catch"](8);
527
+ case 35:
528
+ _context7.prev = 35;
529
+ _context7.t9 = _context7["catch"](9);
530
+ extendedError = new Error("Failed to delete call history records: ".concat(_context7.t9));
531
+ _Logger.default.error(extendedError, {
532
+ file: _constants.CALL_HISTORY_FILE,
533
+ method: _constants.METHODS.DELETE_CALL_HISTORY_RECORDS
534
+ });
535
+ _context7.next = 41;
536
+ return (0, _Utils.uploadLogs)();
537
+ case 41:
501
538
  // Catch the 401 error from try block, return the error object to user
502
539
  errorInfo = {
503
540
  statusCode: _context7.t9 instanceof Error ? Number(_context7.t9.message) : ''
504
541
  };
505
542
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
506
543
  return _context7.abrupt("return", errorStatus);
507
- case 39:
544
+ case 44:
508
545
  case "end":
509
546
  return _context7.stop();
510
547
  }
511
- }, _callee7, this, [[8, 34]]);
548
+ }, _callee7, this, [[9, 35]]);
512
549
  }));
513
550
  function deleteCallHistoryRecords(_x5) {
514
551
  return _deleteCallHistoryRecords.apply(this, arguments);
@@ -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","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","CallHistory","exports","_Eventing","_inherits2","_super","webex","logger","_this","_classCallCheck2","_assertThisInitialized2","file","CALL_HISTORY_FILE","method","_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","callingBackend","hasCucmDN","_ucmLinesResponse$dat","ucmLinesResponse","ucmLinesData","responseDetails","errorInfo","errorStatus","_args4","_callee4$","_context4","undefined","NUMBER_OF_DAYS","LIMIT","SORT","DEFAULT","SORT_BY","Date","setDate","getDate","fromDate","toISOString","_values","includes","concat","loggerContext","info","HISTORY","USER_SESSIONS","FROM_DATE","request","uri","HTTP_METHODS","GET","service","ALLOWED_SERVICES","JANUS","sent","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","serviceErrorCodeHandler","getCallHistoryData","_updateMissedCalls","_callee5","endTimeSessionIds","santizedSessionIds","requestBody","updateMissedCallContentUrl","response","_callee5$","_context5","map","endTime","UPDATE_MISSED_CALLS_ENDPOINT","fetch","t1","t2","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","_stringify","t8","headers","ok","Error","status","json","readStatusMessage","SET_READ_STATE_SUCCESS_MESSAGE","t9","Number","updateMissedCalls","_x4","_fetchUCMLinesData","_callee6","vgEndpoint","userId","orgId","linesURIForUCM","ucmLineDetails","_callee6$","_context6","getVgActionEndpoint","VERSION_1","UNIFIED_COMMUNICATIONS","CONFIG","PEOPLE","LINES","ORG_ID","_deleteCallHistoryRecords","_callee7","deleteSessionIds","invalidSessions","invalidSessionIds","deleteRequestBody","deleteCallHistoryRecordContentUrl","_callee7$","_context7","_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 {serviceErrorCodeHandler, getVgActionEndpoint, getCallingBackEnd} 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} from './constants';\nimport {FAILURE_MESSAGE, STATUS_CODE, SUCCESS_MESSAGE, USER_SESSIONS} 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: 'getCallHistoryData',\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.log(`Janus API URL ${this.janusUrl}`, this.loggerContext);\n log.info(`Call history from date : ${this.fromDate}`, this.loggerContext);\n log.info(`Call history sort type : ${sortParam}`, this.loggerContext);\n log.info(`Call history sortby type : ${sortByParam}`, 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 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 return responseDetails;\n } catch (err: unknown) {\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: 'updateMissedCalls',\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 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 const data: UpdateMissedCallsResponse = await response.json();\n log.info(`Missed calls are succesfully 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 return responseDetails;\n } catch (err: unknown) {\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: 'fetchLinesData',\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 try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${linesURIForUCM}`,\n method: HTTP_METHODS.GET,\n });\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.info(`Line details fetched successfully`, loggerContext);\n\n return ucmLineDetails;\n } catch (err: unknown) {\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: 'deleteCallHistoryRecords',\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 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 const deleteRequestBody = {\n deleteSessionIds: santizedSessionIds,\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 const data: DeleteCallHistoryRecordsResponse = await response.json();\n log.info(`Call history records are succesfully deleted by the user`, loggerContext);\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 // 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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"}
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","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","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","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","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","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","headers","ok","status","json","readStatusMessage","SET_READ_STATE_SUCCESS_MESSAGE","t9","Number","updateMissedCalls","_x4","_fetchUCMLinesData","_callee6","vgEndpoint","userId","orgId","linesURIForUCM","ucmLineDetails","_callee6$","_context6","FETCH_UCM_LINES_DATA","getVgActionEndpoint","VERSION_1","UNIFIED_COMMUNICATIONS","CONFIG","PEOPLE","LINES","ORG_ID","_deleteCallHistoryRecords","_callee7","deleteSessionIds","invalidSessions","invalidSessionIds","deleteRequestBody","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 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 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 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 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 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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"}