@webex/calling 3.7.0-next.8 → 3.7.0-wxcc.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 (111) hide show
  1. package/dist/CallHistory/CallHistory.js +67 -195
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +108 -331
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/callHistoryFixtures.js +1 -25
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
  7. package/dist/CallHistory/constants.js +1 -4
  8. package/dist/CallHistory/constants.js.map +1 -1
  9. package/dist/CallHistory/types.js.map +1 -1
  10. package/dist/CallingClient/CallingClient.js +2 -2
  11. package/dist/CallingClient/CallingClient.js.map +1 -1
  12. package/dist/CallingClient/CallingClient.test.js +2 -2
  13. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  14. package/dist/CallingClient/calling/CallerId/index.js +5 -14
  15. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  16. package/dist/CallingClient/calling/CallerId/index.test.js +6 -6
  17. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  18. package/dist/CallingClient/calling/call.js +348 -434
  19. package/dist/CallingClient/calling/call.js.map +1 -1
  20. package/dist/CallingClient/calling/call.test.js +386 -516
  21. package/dist/CallingClient/calling/call.test.js.map +1 -1
  22. package/dist/CallingClient/calling/callManager.js +6 -6
  23. package/dist/CallingClient/calling/callManager.js.map +1 -1
  24. package/dist/CallingClient/calling/callManager.test.js +3 -3
  25. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  26. package/dist/CallingClient/calling/types.js +1 -6
  27. package/dist/CallingClient/calling/types.js.map +1 -1
  28. package/dist/CallingClient/constants.js +3 -2
  29. package/dist/CallingClient/constants.js.map +1 -1
  30. package/dist/CallingClient/line/index.js +7 -14
  31. package/dist/CallingClient/line/index.js.map +1 -1
  32. package/dist/CallingClient/line/line.test.js +22 -84
  33. package/dist/CallingClient/line/line.test.js.map +1 -1
  34. package/dist/CallingClient/line/types.js.map +1 -1
  35. package/dist/CallingClient/registration/register.js +59 -79
  36. package/dist/CallingClient/registration/register.js.map +1 -1
  37. package/dist/CallingClient/registration/register.test.js +1 -1
  38. package/dist/CallingClient/registration/register.test.js.map +1 -1
  39. package/dist/CallingClient/types.js.map +1 -1
  40. package/dist/Contacts/ContactsClient.js +14 -14
  41. package/dist/Contacts/ContactsClient.js.map +1 -1
  42. package/dist/Events/types.js +0 -2
  43. package/dist/Events/types.js.map +1 -1
  44. package/dist/common/Utils.js +13 -18
  45. package/dist/common/Utils.js.map +1 -1
  46. package/dist/common/Utils.test.js +0 -97
  47. package/dist/common/Utils.test.js.map +1 -1
  48. package/dist/common/constants.js +3 -4
  49. package/dist/common/constants.js.map +1 -1
  50. package/dist/common/types.js +0 -1
  51. package/dist/common/types.js.map +1 -1
  52. package/dist/index.js +12 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/module/CallHistory/CallHistory.js +2 -64
  55. package/dist/module/CallHistory/callHistoryFixtures.js +0 -24
  56. package/dist/module/CallHistory/constants.js +0 -3
  57. package/dist/module/CallingClient/CallingClient.js +1 -1
  58. package/dist/module/CallingClient/calling/CallerId/index.js +6 -6
  59. package/dist/module/CallingClient/calling/call.js +22 -66
  60. package/dist/module/CallingClient/calling/callManager.js +5 -5
  61. package/dist/module/CallingClient/calling/types.js +0 -5
  62. package/dist/module/CallingClient/constants.js +2 -1
  63. package/dist/module/CallingClient/line/index.js +8 -14
  64. package/dist/module/CallingClient/registration/register.js +4 -12
  65. package/dist/module/Contacts/ContactsClient.js +2 -2
  66. package/dist/module/Events/types.js +0 -2
  67. package/dist/module/common/Utils.js +5 -12
  68. package/dist/module/common/constants.js +2 -3
  69. package/dist/module/common/types.js +0 -1
  70. package/dist/module/index.js +1 -0
  71. package/dist/types/CallHistory/CallHistory.d.ts +2 -4
  72. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  73. package/dist/types/CallHistory/callHistoryFixtures.d.ts +2 -6
  74. package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
  75. package/dist/types/CallHistory/constants.d.ts +0 -3
  76. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  77. package/dist/types/CallHistory/types.d.ts +0 -9
  78. package/dist/types/CallHistory/types.d.ts.map +1 -1
  79. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  80. package/dist/types/CallingClient/calling/CallerId/index.d.ts.map +1 -1
  81. package/dist/types/CallingClient/calling/call.d.ts +5 -7
  82. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  83. package/dist/types/CallingClient/calling/callManager.d.ts +1 -1
  84. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  85. package/dist/types/CallingClient/calling/types.d.ts +2 -6
  86. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  87. package/dist/types/CallingClient/constants.d.ts +2 -1
  88. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  89. package/dist/types/CallingClient/line/index.d.ts +2 -3
  90. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  91. package/dist/types/CallingClient/line/types.d.ts +1 -1
  92. package/dist/types/CallingClient/line/types.d.ts.map +1 -1
  93. package/dist/types/CallingClient/registration/register.d.ts +2 -4
  94. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  95. package/dist/types/CallingClient/types.d.ts +0 -1
  96. package/dist/types/CallingClient/types.d.ts.map +1 -1
  97. package/dist/types/Contacts/ContactsClient.d.ts +1 -1
  98. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  99. package/dist/types/Events/types.d.ts +2 -15
  100. package/dist/types/Events/types.d.ts.map +1 -1
  101. package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
  102. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
  103. package/dist/types/common/Utils.d.ts +2 -2
  104. package/dist/types/common/Utils.d.ts.map +1 -1
  105. package/dist/types/common/constants.d.ts +0 -1
  106. package/dist/types/common/constants.d.ts.map +1 -1
  107. package/dist/types/common/types.d.ts +1 -2
  108. package/dist/types/common/types.d.ts.map +1 -1
  109. package/dist/types/index.d.ts +2 -0
  110. package/dist/types/index.d.ts.map +1 -1
  111. package/package.json +3 -3
@@ -14,7 +14,6 @@ _Object$defineProperty(exports, "__esModule", {
14
14
  exports.createCallHistoryClient = exports.CallHistory = void 0;
15
15
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
16
16
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
17
- var _isNan = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/number/is-nan"));
18
17
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
19
18
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
20
19
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
@@ -101,24 +100,6 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
101
100
  return _ref2.apply(this, arguments);
102
101
  };
103
102
  }());
104
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleUserSessionsDeletedEvents", /*#__PURE__*/function () {
105
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(event) {
106
- return _regenerator.default.wrap(function _callee3$(_context3) {
107
- while (1) switch (_context3.prev = _context3.next) {
108
- case 0:
109
- if (event && event.data.deletedSessions) {
110
- _this.emit(_types2.COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED, event);
111
- }
112
- case 1:
113
- case "end":
114
- return _context3.stop();
115
- }
116
- }, _callee3);
117
- }));
118
- return function (_x3) {
119
- return _ref3.apply(this, arguments);
120
- };
121
- }());
122
103
  _this.sdkConnector = _SDKConnector.default;
123
104
  if (!_this.sdkConnector.getWebex()) {
124
105
  _SDKConnector.default.setWebex(webex);
@@ -140,7 +121,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
140
121
  (0, _createClass2.default)(CallHistory, [{
141
122
  key: "getCallHistoryData",
142
123
  value: (function () {
143
- var _getCallHistoryData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
124
+ var _getCallHistoryData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
144
125
  var days,
145
126
  limit,
146
127
  sort,
@@ -158,14 +139,14 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
158
139
  responseDetails,
159
140
  errorInfo,
160
141
  errorStatus,
161
- _args4 = arguments;
162
- return _regenerator.default.wrap(function _callee4$(_context4) {
163
- while (1) switch (_context4.prev = _context4.next) {
142
+ _args3 = arguments;
143
+ return _regenerator.default.wrap(function _callee3$(_context3) {
144
+ while (1) switch (_context3.prev = _context3.next) {
164
145
  case 0:
165
- days = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : _constants.NUMBER_OF_DAYS;
166
- limit = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : _constants.LIMIT;
167
- sort = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : _types.SORT.DEFAULT;
168
- sortBy = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : _types.SORT_BY.DEFAULT;
146
+ days = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : _constants.NUMBER_OF_DAYS;
147
+ limit = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : _constants.LIMIT;
148
+ sort = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : _types.SORT.DEFAULT;
149
+ sortBy = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : _types.SORT_BY.DEFAULT;
169
150
  /*
170
151
  1. Mandatory field for Janus API - fromDate
171
152
  2. Calculating the fromDate by deducting the NUMBER_OF_DAYS with the current date
@@ -180,15 +161,15 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
180
161
  _Logger.default.info("Call history sort type : ".concat(sortParam), this.loggerContext);
181
162
  _Logger.default.info("Call history sortby type : ".concat(sortByParam), this.loggerContext);
182
163
  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;
164
+ _context3.prev = 14;
165
+ _context3.next = 17;
185
166
  return this.webex.request({
186
167
  uri: "".concat(url),
187
168
  method: _types.HTTP_METHODS.GET,
188
169
  service: _types.ALLOWED_SERVICES.JANUS
189
170
  });
190
171
  case 17:
191
- janusResponse = _context4.sent;
172
+ janusResponse = _context3.sent;
192
173
  this.userSessions = janusResponse.body;
193
174
  if (sortByParam === _types.SORT_BY.START_TIME) {
194
175
  if (sortParam === _types.SORT.DESC) {
@@ -204,11 +185,11 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
204
185
  // Check the calling backend
205
186
  callingBackend = (0, _Utils.getCallingBackEnd)(this.webex);
206
187
  if (!(callingBackend === _types.CALLING_BACKEND.UCM)) {
207
- _context4.next = 29;
188
+ _context3.next = 29;
208
189
  break;
209
190
  }
210
191
  if (!(this.userSessions[_constants2.USER_SESSIONS] && this.userSessions[_constants2.USER_SESSIONS].length > 0)) {
211
- _context4.next = 29;
192
+ _context3.next = 29;
212
193
  break;
213
194
  }
214
195
  // Check if cucmDN exists and is valid in any of the userSessions
@@ -216,13 +197,13 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
216
197
  return session.self.cucmDN && session.self.cucmDN.length > 0;
217
198
  }); // If any user session has cucmDN, proceed to fetch line data
218
199
  if (!hasCucmDN) {
219
- _context4.next = 29;
200
+ _context3.next = 29;
220
201
  break;
221
202
  }
222
- _context4.next = 27;
203
+ _context3.next = 27;
223
204
  return this.fetchUCMLinesData();
224
205
  case 27:
225
- ucmLinesResponse = _context4.sent;
206
+ ucmLinesResponse = _context3.sent;
226
207
  // Check if the Lines API response was successful
227
208
  if (ucmLinesResponse.statusCode === 200 && (_ucmLinesResponse$dat = ucmLinesResponse.data.lines) !== null && _ucmLinesResponse$dat !== void 0 && _ucmLinesResponse$dat.devices) {
228
209
  ucmLinesData = ucmLinesResponse.data.lines.devices; // Iterate over user sessions and match with Lines data
@@ -247,18 +228,18 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
247
228
  },
248
229
  message: _constants2.SUCCESS_MESSAGE
249
230
  };
250
- return _context4.abrupt("return", responseDetails);
231
+ return _context3.abrupt("return", responseDetails);
251
232
  case 33:
252
- _context4.prev = 33;
253
- _context4.t0 = _context4["catch"](14);
254
- errorInfo = _context4.t0;
233
+ _context3.prev = 33;
234
+ _context3.t0 = _context3["catch"](14);
235
+ errorInfo = _context3.t0;
255
236
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, this.loggerContext);
256
- return _context4.abrupt("return", errorStatus);
237
+ return _context3.abrupt("return", errorStatus);
257
238
  case 38:
258
239
  case "end":
259
- return _context4.stop();
240
+ return _context3.stop();
260
241
  }
261
- }, _callee4, this, [[14, 33]]);
242
+ }, _callee3, this, [[14, 33]]);
262
243
  }));
263
244
  function getCallHistoryData() {
264
245
  return _getCallHistoryData.apply(this, arguments);
@@ -274,10 +255,10 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
274
255
  }, {
275
256
  key: "updateMissedCalls",
276
257
  value: (function () {
277
- var _updateMissedCalls = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(endTimeSessionIds) {
258
+ var _updateMissedCalls = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(endTimeSessionIds) {
278
259
  var loggerContext, santizedSessionIds, requestBody, updateMissedCallContentUrl, response, data, responseDetails, errorInfo, errorStatus;
279
- return _regenerator.default.wrap(function _callee5$(_context5) {
280
- while (1) switch (_context5.prev = _context5.next) {
260
+ return _regenerator.default.wrap(function _callee4$(_context4) {
261
+ while (1) switch (_context4.prev = _context4.next) {
281
262
  case 0:
282
263
  loggerContext = {
283
264
  file: _constants.CALL_HISTORY_FILE,
@@ -291,38 +272,38 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
291
272
  requestBody = {
292
273
  endTimeSessionIds: santizedSessionIds
293
274
  };
294
- _context5.prev = 3;
275
+ _context4.prev = 3;
295
276
  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
- _context5.t0 = fetch;
297
- _context5.t1 = updateMissedCallContentUrl;
298
- _context5.t2 = _types.HTTP_METHODS.POST;
299
- _context5.t3 = _defineProperty2.default;
300
- _context5.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
301
- _context5.next = 12;
277
+ _context4.t0 = fetch;
278
+ _context4.t1 = updateMissedCallContentUrl;
279
+ _context4.t2 = _types.HTTP_METHODS.POST;
280
+ _context4.t3 = _defineProperty2.default;
281
+ _context4.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
282
+ _context4.next = 12;
302
283
  return this.webex.credentials.getUserToken();
303
284
  case 12:
304
- _context5.t5 = _context5.sent;
305
- _context5.t6 = (0, _context5.t3)(_context5.t4, "Authorization", _context5.t5);
306
- _context5.t7 = (0, _stringify.default)(requestBody);
307
- _context5.t8 = {
308
- method: _context5.t2,
309
- headers: _context5.t6,
310
- body: _context5.t7
285
+ _context4.t5 = _context4.sent;
286
+ _context4.t6 = (0, _context4.t3)(_context4.t4, "Authorization", _context4.t5);
287
+ _context4.t7 = (0, _stringify.default)(requestBody);
288
+ _context4.t8 = {
289
+ method: _context4.t2,
290
+ headers: _context4.t6,
291
+ body: _context4.t7
311
292
  };
312
- _context5.next = 18;
313
- return (0, _context5.t0)(_context5.t1, _context5.t8);
293
+ _context4.next = 18;
294
+ return (0, _context4.t0)(_context4.t1, _context4.t8);
314
295
  case 18:
315
- response = _context5.sent;
296
+ response = _context4.sent;
316
297
  if (response.ok) {
317
- _context5.next = 21;
298
+ _context4.next = 21;
318
299
  break;
319
300
  }
320
301
  throw new Error("".concat(response.status));
321
302
  case 21:
322
- _context5.next = 23;
303
+ _context4.next = 23;
323
304
  return response.json();
324
305
  case 23:
325
- data = _context5.sent;
306
+ data = _context4.sent;
326
307
  _Logger.default.info("Missed calls are succesfully read by the user", loggerContext);
327
308
  responseDetails = {
328
309
  statusCode: data.statusCode,
@@ -331,23 +312,23 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
331
312
  },
332
313
  message: _constants2.SUCCESS_MESSAGE
333
314
  };
334
- return _context5.abrupt("return", responseDetails);
315
+ return _context4.abrupt("return", responseDetails);
335
316
  case 29:
336
- _context5.prev = 29;
337
- _context5.t9 = _context5["catch"](3);
317
+ _context4.prev = 29;
318
+ _context4.t9 = _context4["catch"](3);
338
319
  // Catch the 401 error from try block, return the error object to user
339
320
  errorInfo = {
340
- statusCode: _context5.t9 instanceof Error ? Number(_context5.t9.message) : ''
321
+ statusCode: _context4.t9 instanceof Error ? Number(_context4.t9.message) : ''
341
322
  };
342
323
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
343
- return _context5.abrupt("return", errorStatus);
324
+ return _context4.abrupt("return", errorStatus);
344
325
  case 34:
345
326
  case "end":
346
- return _context5.stop();
327
+ return _context4.stop();
347
328
  }
348
- }, _callee5, this, [[3, 29]]);
329
+ }, _callee4, this, [[3, 29]]);
349
330
  }));
350
- function updateMissedCalls(_x4) {
331
+ function updateMissedCalls(_x3) {
351
332
  return _updateMissedCalls.apply(this, arguments);
352
333
  }
353
334
  return updateMissedCalls;
@@ -360,10 +341,10 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
360
341
  }, {
361
342
  key: "fetchUCMLinesData",
362
343
  value: (function () {
363
- var _fetchUCMLinesData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
344
+ var _fetchUCMLinesData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
364
345
  var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, response, ucmLineDetails, errorInfo, errorStatus;
365
- return _regenerator.default.wrap(function _callee6$(_context6) {
366
- while (1) switch (_context6.prev = _context6.next) {
346
+ return _regenerator.default.wrap(function _callee5$(_context5) {
347
+ while (1) switch (_context5.prev = _context5.next) {
367
348
  case 0:
368
349
  loggerContext = {
369
350
  file: _constants.CALL_HISTORY_FILE,
@@ -373,14 +354,14 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
373
354
  userId = this.webex.internal.device.userId;
374
355
  orgId = this.webex.internal.device.orgId;
375
356
  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;
357
+ _context5.prev = 5;
358
+ _context5.next = 8;
378
359
  return this.webex.request({
379
360
  uri: "".concat(linesURIForUCM),
380
361
  method: _types.HTTP_METHODS.GET
381
362
  });
382
363
  case 8:
383
- response = _context6.sent;
364
+ response = _context5.sent;
384
365
  ucmLineDetails = {
385
366
  statusCode: Number(response.statusCode),
386
367
  data: {
@@ -389,131 +370,23 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
389
370
  message: _constants2.SUCCESS_MESSAGE
390
371
  };
391
372
  _Logger.default.info("Line details fetched successfully", loggerContext);
392
- return _context6.abrupt("return", ucmLineDetails);
373
+ return _context5.abrupt("return", ucmLineDetails);
393
374
  case 14:
394
- _context6.prev = 14;
395
- _context6.t0 = _context6["catch"](5);
396
- errorInfo = _context6.t0;
375
+ _context5.prev = 14;
376
+ _context5.t0 = _context5["catch"](5);
377
+ errorInfo = _context5.t0;
397
378
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
398
- return _context6.abrupt("return", errorStatus);
379
+ return _context5.abrupt("return", errorStatus);
399
380
  case 19:
400
381
  case "end":
401
- return _context6.stop();
382
+ return _context5.stop();
402
383
  }
403
- }, _callee6, this, [[5, 14]]);
384
+ }, _callee5, this, [[5, 14]]);
404
385
  }));
405
386
  function fetchUCMLinesData() {
406
387
  return _fetchUCMLinesData.apply(this, arguments);
407
388
  }
408
389
  return fetchUCMLinesData;
409
- }()
410
- /**
411
- * Function to delete the call history records using sessionId and endTime.
412
- * @param deleteSessionIds - An array of objects containing endTime and sessionId of the call history records
413
- * @returns {Promise} Resolves to an object of type {@link DeleteCallHistoryRecordsResponse}.Response details with success or error status.
414
- */
415
- )
416
- }, {
417
- key: "deleteCallHistoryRecords",
418
- value: (function () {
419
- 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;
421
- return _regenerator.default.wrap(function _callee7$(_context7) {
422
- while (1) switch (_context7.prev = _context7.next) {
423
- case 0:
424
- loggerContext = {
425
- file: _constants.CALL_HISTORY_FILE,
426
- method: 'deleteCallHistoryRecords'
427
- }; // Collect all sessions with invalid dates (endTime) in an array
428
- invalidSessions = deleteSessionIds.filter(function (session) {
429
- return (0, _isNan.default)(new Date(session.endTime).getTime());
430
- });
431
- if (!(invalidSessions.length > 0)) {
432
- _context7.next = 6;
433
- break;
434
- }
435
- // If there are invalid sessions, return an error with details
436
- invalidSessionIds = invalidSessions.map(function (session) {
437
- return session.sessionId;
438
- }).join(', ');
439
- _Logger.default.info("The provided date is malformed or invalid for session IDs: ".concat(invalidSessionIds), loggerContext);
440
- return _context7.abrupt("return", {
441
- statusCode: 400,
442
- data: {
443
- deleteStatusMessage: _constants.SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE
444
- },
445
- message: _constants2.FAILURE_MESSAGE
446
- });
447
- case 6:
448
- // Convert endTime to milliseconds for each sessionId
449
- santizedSessionIds = deleteSessionIds.map(function (session) {
450
- return _objectSpread(_objectSpread({}, session), {}, {
451
- endTime: new Date(session.endTime).getTime()
452
- });
453
- });
454
- deleteRequestBody = {
455
- deleteSessionIds: santizedSessionIds
456
- };
457
- _context7.prev = 8;
458
- 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
- _context7.t0 = fetch;
460
- _context7.t1 = deleteCallHistoryRecordContentUrl;
461
- _context7.t2 = _types.HTTP_METHODS.POST;
462
- _context7.t3 = _defineProperty2.default;
463
- _context7.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
464
- _context7.next = 17;
465
- return this.webex.credentials.getUserToken();
466
- case 17:
467
- _context7.t5 = _context7.sent;
468
- _context7.t6 = (0, _context7.t3)(_context7.t4, "Authorization", _context7.t5);
469
- _context7.t7 = (0, _stringify.default)(deleteRequestBody);
470
- _context7.t8 = {
471
- method: _context7.t2,
472
- headers: _context7.t6,
473
- body: _context7.t7
474
- };
475
- _context7.next = 23;
476
- return (0, _context7.t0)(_context7.t1, _context7.t8);
477
- case 23:
478
- response = _context7.sent;
479
- if (response.ok) {
480
- _context7.next = 26;
481
- break;
482
- }
483
- throw new Error("".concat(response.status));
484
- case 26:
485
- _context7.next = 28;
486
- return response.json();
487
- case 28:
488
- data = _context7.sent;
489
- _Logger.default.info("Call history records are succesfully deleted by the user", loggerContext);
490
- responseDetails = {
491
- statusCode: data.statusCode,
492
- data: {
493
- deleteStatusMessage: _constants.SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE
494
- },
495
- message: _constants2.SUCCESS_MESSAGE
496
- };
497
- return _context7.abrupt("return", responseDetails);
498
- case 34:
499
- _context7.prev = 34;
500
- _context7.t9 = _context7["catch"](8);
501
- // Catch the 401 error from try block, return the error object to user
502
- errorInfo = {
503
- statusCode: _context7.t9 instanceof Error ? Number(_context7.t9.message) : ''
504
- };
505
- errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
506
- return _context7.abrupt("return", errorStatus);
507
- case 39:
508
- case "end":
509
- return _context7.stop();
510
- }
511
- }, _callee7, this, [[8, 34]]);
512
- }));
513
- function deleteCallHistoryRecords(_x5) {
514
- return _deleteCallHistoryRecords.apply(this, arguments);
515
- }
516
- return deleteCallHistoryRecords;
517
390
  }())
518
391
  }, {
519
392
  key: "registerSessionsListener",
@@ -525,7 +398,6 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
525
398
  this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE, this.handleSessionEvents);
526
399
  this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY, this.handleSessionEvents);
527
400
  this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED, this.handleUserReadSessionEvents);
528
- this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED, this.handleUserSessionsDeletedEvents);
529
401
  }
530
402
  }]);
531
403
  return CallHistory;
@@ -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","_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","sdkConnector","SDKConnector","getWebex","setWebex","janusUrl","internal","services","_serviceUrls","janus","registerSessionsListener","log","setLogger","level","_createClass2","key","value","_getCallHistoryData","_callee3","days","limit","sort","sortBy","date","sortByParam","sortParam","url","janusResponse","callingBackend","hasCucmDN","_ucmLinesResponse$dat","ucmLinesResponse","ucmLinesData","responseDetails","errorInfo","errorStatus","_args3","_callee3$","_context3","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","_callee4","endTimeSessionIds","santizedSessionIds","requestBody","updateMissedCallContentUrl","response","_callee4$","_context4","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","_x3","_fetchUCMLinesData","_callee5","vgEndpoint","userId","orgId","linesURIForUCM","ucmLineDetails","_callee5$","_context5","getVgActionEndpoint","VERSION_1","UNIFIED_COMMUNICATIONS","CONFIG","PEOPLE","LINES","ORG_ID","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","handleSessionEvents","CALL_SESSION_EVENT_LEGACY","CALL_SESSION_EVENT_VIEWED","handleUserReadSessionEvents","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} 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} from './constants';\nimport {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} 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 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 /**\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 }\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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"}