@webex/calling 3.0.1 → 3.1.0-next.2

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 (55) hide show
  1. package/dist/CallHistory/CallHistory.js +132 -18
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +214 -4
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/callHistoryFixtures.js +38 -1
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
  7. package/dist/CallHistory/constants.js +5 -1
  8. package/dist/CallHistory/constants.js.map +1 -1
  9. package/dist/CallHistory/types.js.map +1 -1
  10. package/dist/CallingClient/calling/call.js +80 -23
  11. package/dist/CallingClient/calling/call.js.map +1 -1
  12. package/dist/CallingClient/calling/call.test.js +482 -378
  13. package/dist/CallingClient/calling/call.test.js.map +1 -1
  14. package/dist/CallingClient/constants.js +3 -1
  15. package/dist/CallingClient/constants.js.map +1 -1
  16. package/dist/Events/types.js +2 -0
  17. package/dist/Events/types.js.map +1 -1
  18. package/dist/Metrics/index.js +30 -0
  19. package/dist/Metrics/index.js.map +1 -1
  20. package/dist/Metrics/index.test.js +52 -2
  21. package/dist/Metrics/index.test.js.map +1 -1
  22. package/dist/Metrics/types.js +2 -0
  23. package/dist/Metrics/types.js.map +1 -1
  24. package/dist/common/Utils.js.map +1 -1
  25. package/dist/module/CallHistory/CallHistory.js +51 -1
  26. package/dist/module/CallHistory/callHistoryFixtures.js +38 -1
  27. package/dist/module/CallHistory/constants.js +4 -0
  28. package/dist/module/CallingClient/calling/call.js +67 -15
  29. package/dist/module/CallingClient/constants.js +1 -0
  30. package/dist/module/Events/types.js +2 -0
  31. package/dist/module/Metrics/index.js +28 -0
  32. package/dist/module/Metrics/types.js +2 -0
  33. package/dist/types/CallHistory/CallHistory.d.ts +4 -2
  34. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  35. package/dist/types/CallHistory/callHistoryFixtures.d.ts +19 -1
  36. package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
  37. package/dist/types/CallHistory/constants.d.ts +4 -0
  38. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  39. package/dist/types/CallHistory/types.d.ts +10 -1
  40. package/dist/types/CallHistory/types.d.ts.map +1 -1
  41. package/dist/types/CallingClient/calling/call.d.ts +6 -1
  42. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  43. package/dist/types/CallingClient/constants.d.ts +1 -0
  44. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  45. package/dist/types/Contacts/ContactsClient.d.ts +1 -1
  46. package/dist/types/Events/types.d.ts +29 -2
  47. package/dist/types/Events/types.d.ts.map +1 -1
  48. package/dist/types/Metrics/index.d.ts.map +1 -1
  49. package/dist/types/Metrics/types.d.ts +3 -0
  50. package/dist/types/Metrics/types.d.ts.map +1 -1
  51. package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
  52. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
  53. package/dist/types/common/Utils.d.ts +2 -2
  54. package/dist/types/common/Utils.d.ts.map +1 -1
  55. package/package.json +3 -3
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
8
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
4
9
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
5
10
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
11
  _Object$defineProperty(exports, "__esModule", {
@@ -8,6 +13,7 @@ _Object$defineProperty(exports, "__esModule", {
8
13
  });
9
14
  exports.createCallHistoryClient = exports.CallHistory = void 0;
10
15
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
16
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
11
17
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
12
18
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
13
19
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
@@ -25,6 +31,8 @@ var _constants = require("./constants");
25
31
  var _constants2 = require("../common/constants");
26
32
  var _types2 = require("../Events/types");
27
33
  var _impl = require("../Events/impl");
34
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
35
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
28
36
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
29
37
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable dot-notation */ /* eslint-disable no-underscore-dangle */
30
38
  /**
@@ -74,6 +82,24 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
74
82
  return _ref.apply(this, arguments);
75
83
  };
76
84
  }());
85
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleUserReadSessionEvents", /*#__PURE__*/function () {
86
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(event) {
87
+ return _regenerator.default.wrap(function _callee2$(_context2) {
88
+ while (1) switch (_context2.prev = _context2.next) {
89
+ case 0:
90
+ if (event && event.data.userReadSessions.userReadSessions) {
91
+ _this.emit(_types2.COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS, event);
92
+ }
93
+ case 1:
94
+ case "end":
95
+ return _context2.stop();
96
+ }
97
+ }, _callee2);
98
+ }));
99
+ return function (_x2) {
100
+ return _ref2.apply(this, arguments);
101
+ };
102
+ }());
77
103
  _this.sdkConnector = _SDKConnector.default;
78
104
  if (!_this.sdkConnector.getWebex()) {
79
105
  _SDKConnector.default.setWebex(webex);
@@ -95,7 +121,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
95
121
  (0, _createClass2.default)(CallHistory, [{
96
122
  key: "getCallHistoryData",
97
123
  value: (function () {
98
- var _getCallHistoryData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
124
+ var _getCallHistoryData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
99
125
  var days,
100
126
  limit,
101
127
  sort,
@@ -108,14 +134,14 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
108
134
  responseDetails,
109
135
  errorInfo,
110
136
  errorStatus,
111
- _args2 = arguments;
112
- return _regenerator.default.wrap(function _callee2$(_context2) {
113
- while (1) switch (_context2.prev = _context2.next) {
137
+ _args3 = arguments;
138
+ return _regenerator.default.wrap(function _callee3$(_context3) {
139
+ while (1) switch (_context3.prev = _context3.next) {
114
140
  case 0:
115
- days = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : _constants.NUMBER_OF_DAYS;
116
- limit = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : _constants.LIMIT;
117
- sort = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : _types.SORT.DEFAULT;
118
- sortBy = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : _types.SORT_BY.DEFAULT;
141
+ days = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : _constants.NUMBER_OF_DAYS;
142
+ limit = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : _constants.LIMIT;
143
+ sort = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : _types.SORT.DEFAULT;
144
+ sortBy = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : _types.SORT_BY.DEFAULT;
119
145
  /*
120
146
  1. Mandatory field for Janus API - fromDate
121
147
  2. Calculating the fromDate by deducting the NUMBER_OF_DAYS with the current date
@@ -130,15 +156,15 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
130
156
  _Logger.default.info("Call history sort type : ".concat(sortParam), this.loggerContext);
131
157
  _Logger.default.info("Call history sortby type : ".concat(sortByParam), this.loggerContext);
132
158
  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);
133
- _context2.prev = 14;
134
- _context2.next = 17;
159
+ _context3.prev = 14;
160
+ _context3.next = 17;
135
161
  return this.webex.request({
136
162
  uri: "".concat(url),
137
163
  method: _types.HTTP_METHODS.GET,
138
164
  service: _types.ALLOWED_SERVICES.JANUS
139
165
  });
140
166
  case 17:
141
- janusResponse = _context2.sent;
167
+ janusResponse = _context3.sent;
142
168
  this.userSessions = janusResponse.body;
143
169
  if (sortByParam === _types.SORT_BY.START_TIME) {
144
170
  if (sortParam === _types.SORT.DESC) {
@@ -158,23 +184,110 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
158
184
  },
159
185
  message: _constants2.SUCCESS_MESSAGE
160
186
  };
161
- return _context2.abrupt("return", responseDetails);
187
+ return _context3.abrupt("return", responseDetails);
162
188
  case 24:
163
- _context2.prev = 24;
164
- _context2.t0 = _context2["catch"](14);
165
- errorInfo = _context2.t0;
189
+ _context3.prev = 24;
190
+ _context3.t0 = _context3["catch"](14);
191
+ errorInfo = _context3.t0;
166
192
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, this.loggerContext);
167
- return _context2.abrupt("return", errorStatus);
193
+ return _context3.abrupt("return", errorStatus);
168
194
  case 29:
169
195
  case "end":
170
- return _context2.stop();
196
+ return _context3.stop();
171
197
  }
172
- }, _callee2, this, [[14, 24]]);
198
+ }, _callee3, this, [[14, 24]]);
173
199
  }));
174
200
  function getCallHistoryData() {
175
201
  return _getCallHistoryData.apply(this, arguments);
176
202
  }
177
203
  return getCallHistoryData;
204
+ }()
205
+ /**
206
+ * Function to update the missed call status in the call history using sessionId and time.
207
+ * @param endTimeSessionIds - An array of objects containing endTime and sessionId of the missed call history records
208
+ * @returns {Promise} Resolves to an object of type {@link UpdateMissedCallsResponse}.Response details with success or error status.
209
+ */
210
+ )
211
+ }, {
212
+ key: "updateMissedCalls",
213
+ value: (function () {
214
+ var _updateMissedCalls = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(endTimeSessionIds) {
215
+ var loggerContext, santizedSessionIds, requestBody, updateMissedCallContentUrl, response, data, responseDetails, errorInfo, errorStatus;
216
+ return _regenerator.default.wrap(function _callee4$(_context4) {
217
+ while (1) switch (_context4.prev = _context4.next) {
218
+ case 0:
219
+ loggerContext = {
220
+ file: _constants.CALL_HISTORY_FILE,
221
+ method: 'updateMissedCalls'
222
+ }; // Convert endTime to milliseconds for each session
223
+ santizedSessionIds = endTimeSessionIds.map(function (session) {
224
+ return _objectSpread(_objectSpread({}, session), {}, {
225
+ endTime: new Date(session.endTime).getTime()
226
+ });
227
+ });
228
+ requestBody = {
229
+ endTimeSessionIds: santizedSessionIds
230
+ };
231
+ _context4.prev = 3;
232
+ 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
233
+ _context4.t0 = fetch;
234
+ _context4.t1 = updateMissedCallContentUrl;
235
+ _context4.t2 = _types.HTTP_METHODS.POST;
236
+ _context4.t3 = _defineProperty2.default;
237
+ _context4.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
238
+ _context4.next = 12;
239
+ return this.webex.credentials.getUserToken();
240
+ case 12:
241
+ _context4.t5 = _context4.sent;
242
+ _context4.t6 = (0, _context4.t3)(_context4.t4, "Authorization", _context4.t5);
243
+ _context4.t7 = (0, _stringify.default)(requestBody);
244
+ _context4.t8 = {
245
+ method: _context4.t2,
246
+ headers: _context4.t6,
247
+ body: _context4.t7
248
+ };
249
+ _context4.next = 18;
250
+ return (0, _context4.t0)(_context4.t1, _context4.t8);
251
+ case 18:
252
+ response = _context4.sent;
253
+ if (response.ok) {
254
+ _context4.next = 21;
255
+ break;
256
+ }
257
+ throw new Error("".concat(response.status));
258
+ case 21:
259
+ _context4.next = 23;
260
+ return response.json();
261
+ case 23:
262
+ data = _context4.sent;
263
+ _Logger.default.info("Missed calls are succesfully read by the user", loggerContext);
264
+ responseDetails = {
265
+ statusCode: data.statusCode,
266
+ data: {
267
+ readStatusMessage: _constants.SET_READ_STATE_SUCCESS_MESSAGE
268
+ },
269
+ message: _constants2.SUCCESS_MESSAGE
270
+ };
271
+ return _context4.abrupt("return", responseDetails);
272
+ case 29:
273
+ _context4.prev = 29;
274
+ _context4.t9 = _context4["catch"](3);
275
+ // Catch the 401 error from try block, return the error object to user
276
+ errorInfo = {
277
+ statusCode: _context4.t9 instanceof Error ? Number(_context4.t9.message) : ''
278
+ };
279
+ errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
280
+ return _context4.abrupt("return", errorStatus);
281
+ case 34:
282
+ case "end":
283
+ return _context4.stop();
284
+ }
285
+ }, _callee4, this, [[3, 29]]);
286
+ }));
287
+ function updateMissedCalls(_x3) {
288
+ return _updateMissedCalls.apply(this, arguments);
289
+ }
290
+ return updateMissedCalls;
178
291
  }())
179
292
  }, {
180
293
  key: "registerSessionsListener",
@@ -185,6 +298,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
185
298
  function registerSessionsListener() {
186
299
  this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE, this.handleSessionEvents);
187
300
  this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY, this.handleSessionEvents);
301
+ this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED, this.handleUserReadSessionEvents);
188
302
  }
189
303
  }]);
190
304
  return CallHistory;
@@ -1 +1 @@
1
- {"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Logger","_Utils","_constants","_constants2","_types2","_impl","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","CallHistory","exports","_Eventing","_inherits2","_super","webex","logger","_this","_classCallCheck2","_defineProperty2","_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","sdkConnector","SDKConnector","getWebex","setWebex","janusUrl","internal","services","_serviceUrls","janus","registerSessionsListener","log","setLogger","level","_createClass2","key","value","_getCallHistoryData","_callee2","days","limit","sort","sortBy","date","sortByParam","sortParam","url","janusResponse","responseDetails","errorInfo","errorStatus","_args2","_callee2$","_context2","length","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","statusCode","STATUS_CODE","message","SUCCESS_MESSAGE","abrupt","t0","serviceErrorCodeHandler","getCallHistoryData","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","handleSessionEvents","CALL_SESSION_EVENT_LEGACY","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 {ALLOWED_SERVICES, HTTP_METHODS, WebexRequestPayload, SORT, SORT_BY} from '../common/types';\nimport {ICallHistory, JanusResponseEvent, LoggerInterface} from './types';\nimport log from '../Logger';\nimport {serviceErrorCodeHandler} from '../common/Utils';\nimport {CALL_HISTORY_FILE, FROM_DATE, HISTORY, LIMIT, NUMBER_OF_DAYS} 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} 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 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 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 /**\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 }\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","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","statusCode","STATUS_CODE","message","SUCCESS_MESSAGE","abrupt","t0","serviceErrorCodeHandler","getCallHistoryData","_updateMissedCalls","_callee4","endTimeSessionIds","santizedSessionIds","requestBody","updateMissedCallContentUrl","response","_callee4$","_context4","map","session","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","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 {ALLOWED_SERVICES, HTTP_METHODS, WebexRequestPayload, SORT, SORT_BY} from '../common/types';\nimport {\n ICallHistory,\n JanusResponseEvent,\n LoggerInterface,\n UpdateMissedCallsResponse,\n} from './types';\nimport log from '../Logger';\nimport {serviceErrorCodeHandler} 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} 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} 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 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 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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"}
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
2
 
3
+ var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
4
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
8
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
9
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
10
+ var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
3
11
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
12
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
13
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
4
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
5
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
6
17
  var _types = require("../Logger/types");
7
18
  var _testUtil = require("../common/testUtil");
@@ -9,11 +20,14 @@ var _types2 = require("../common/types");
9
20
  var _CallHistory = require("./CallHistory");
10
21
  var _callHistoryFixtures = require("./callHistoryFixtures");
11
22
  var _types3 = require("../Events/types");
12
- /* eslint-disable @typescript-eslint/no-unused-vars */
13
- /* eslint-disable dot-notation */
14
- /* eslint-disable @typescript-eslint/no-shadow */
15
-
23
+ var _constants = require("./constants");
24
+ var utils = _interopRequireWildcard(require("../common/Utils"));
25
+ function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
26
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
27
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable dot-notation */ /* eslint-disable @typescript-eslint/no-shadow */
16
29
  var webex = (0, _testUtil.getTestUtilsWebex)();
30
+ var serviceErrorCodeHandlerSpy;
17
31
  describe('Call history tests', function () {
18
32
  var callHistory;
19
33
  beforeAll(function () {
@@ -137,6 +151,202 @@ describe('Call history tests', function () {
137
151
  var callSessionCallback = mockOn.mock.calls[1][1];
138
152
  callSessionCallback(_callHistoryFixtures.MOCK_SESSION_EVENT_LEGACY);
139
153
  });
154
+ it('verify the user viewed session event for missed calls update', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
155
+ return _regenerator.default.wrap(function _callee5$(_context5) {
156
+ while (1) switch (_context5.prev = _context5.next) {
157
+ case 0:
158
+ _context5.next = 2;
159
+ return new _promise.default(function (resolve) {
160
+ callHistory.on(_types3.COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS, function (event) {
161
+ expect(event.data).toEqual(_callHistoryFixtures.MOCK_SESSION_EVENT_VIEWED.data);
162
+ resolve();
163
+ });
164
+ expect(mockOn.mock.calls[2][0]).toEqual(_types3.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED);
165
+ var callSessionCallback = mockOn.mock.calls[2][1];
166
+ callSessionCallback(_callHistoryFixtures.MOCK_SESSION_EVENT_VIEWED);
167
+ });
168
+ case 2:
169
+ case "end":
170
+ return _context5.stop();
171
+ }
172
+ }, _callee5);
173
+ })));
174
+ });
175
+ describe('Update missed calls test', function () {
176
+ var methodDetails = {
177
+ file: _constants.CALL_HISTORY_FILE,
178
+ method: 'updateMissedCalls'
179
+ };
180
+ afterEach(function () {
181
+ jest.clearAllMocks();
182
+ });
183
+ beforeEach( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
184
+ return _regenerator.default.wrap(function _callee6$(_context6) {
185
+ while (1) switch (_context6.prev = _context6.next) {
186
+ case 0:
187
+ serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');
188
+ global.fetch = jest.fn(function () {
189
+ return _promise.default.resolve({
190
+ status: 200,
191
+ ok: true,
192
+ json: function json() {
193
+ return _promise.default.resolve(_callHistoryFixtures.MOCK_UPDATE_MISSED_CALL_RESPONSE);
194
+ }
195
+ });
196
+ });
197
+ case 2:
198
+ case "end":
199
+ return _context6.stop();
200
+ }
201
+ }, _callee6);
202
+ })));
203
+ it('successfully updates missed calls', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
204
+ var endTimeSessionIds, response, convertedEndTimeSessionIds;
205
+ return _regenerator.default.wrap(function _callee7$(_context7) {
206
+ while (1) switch (_context7.prev = _context7.next) {
207
+ case 0:
208
+ endTimeSessionIds = [{
209
+ endTime: '1234568',
210
+ sessionId: '123'
211
+ }];
212
+ _context7.next = 3;
213
+ return callHistory.updateMissedCalls(endTimeSessionIds);
214
+ case 3:
215
+ response = _context7.sent;
216
+ convertedEndTimeSessionIds = endTimeSessionIds.map(function (session) {
217
+ return _objectSpread(_objectSpread({}, session), {}, {
218
+ endTime: new Date(session.endTime).getTime()
219
+ });
220
+ });
221
+ expect(response.statusCode).toEqual(200);
222
+ expect(response).toEqual(_callHistoryFixtures.MOCK_UPDATE_MISSED_CALL_RESPONSE);
223
+ _context7.t0 = expect(global.fetch);
224
+ _context7.t1 = _callHistoryFixtures.janusSetReadStateUrl;
225
+ _context7.t2 = _types2.HTTP_METHODS.POST;
226
+ _context7.t3 = _defineProperty2.default;
227
+ _context7.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
228
+ _context7.next = 14;
229
+ return webex.credentials.getUserToken();
230
+ case 14:
231
+ _context7.t5 = _context7.sent;
232
+ _context7.t6 = (0, _context7.t3)(_context7.t4, "Authorization", _context7.t5);
233
+ _context7.t7 = (0, _stringify.default)({
234
+ endTimeSessionIds: convertedEndTimeSessionIds
235
+ });
236
+ _context7.t8 = {
237
+ method: _context7.t2,
238
+ headers: _context7.t6,
239
+ body: _context7.t7
240
+ };
241
+ _context7.t0.toBeCalledOnceWith.call(_context7.t0, _context7.t1, _context7.t8);
242
+ case 19:
243
+ case "end":
244
+ return _context7.stop();
245
+ }
246
+ }, _callee7);
247
+ })));
248
+ it('Error: updateMissedCalls throw 400 error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
249
+ var endTimeSessionIds, response, convertedEndTimeSessionIds;
250
+ return _regenerator.default.wrap(function _callee8$(_context8) {
251
+ while (1) switch (_context8.prev = _context8.next) {
252
+ case 0:
253
+ endTimeSessionIds = [];
254
+ global.fetch = jest.fn(function () {
255
+ return _promise.default.resolve({
256
+ status: 400,
257
+ ok: false
258
+ });
259
+ });
260
+ _context8.next = 4;
261
+ return callHistory.updateMissedCalls(endTimeSessionIds);
262
+ case 4:
263
+ response = _context8.sent;
264
+ convertedEndTimeSessionIds = endTimeSessionIds.map(function (session) {
265
+ return _objectSpread(_objectSpread({}, session), {}, {
266
+ endTime: new Date(session.endTime).getTime()
267
+ });
268
+ });
269
+ expect(response).toStrictEqual(_callHistoryFixtures.ERROR_DETAILS_400);
270
+ expect(response.statusCode).toBe(400);
271
+ _context8.t0 = expect(global.fetch);
272
+ _context8.t1 = _callHistoryFixtures.janusSetReadStateUrl;
273
+ _context8.t2 = _types2.HTTP_METHODS.POST;
274
+ _context8.t3 = _defineProperty2.default;
275
+ _context8.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
276
+ _context8.next = 15;
277
+ return webex.credentials.getUserToken();
278
+ case 15:
279
+ _context8.t5 = _context8.sent;
280
+ _context8.t6 = (0, _context8.t3)(_context8.t4, "Authorization", _context8.t5);
281
+ _context8.t7 = (0, _stringify.default)({
282
+ endTimeSessionIds: convertedEndTimeSessionIds
283
+ });
284
+ _context8.t8 = {
285
+ method: _context8.t2,
286
+ headers: _context8.t6,
287
+ body: _context8.t7
288
+ };
289
+ _context8.t0.toBeCalledOnceWith.call(_context8.t0, _context8.t1, _context8.t8);
290
+ expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith({
291
+ statusCode: 400
292
+ }, methodDetails);
293
+ case 21:
294
+ case "end":
295
+ return _context8.stop();
296
+ }
297
+ }, _callee8);
298
+ })));
299
+ it('Error: updateMissedCalls throw 401 error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
300
+ var endTimeSessionIds, response, convertedEndTimeSessionIds;
301
+ return _regenerator.default.wrap(function _callee9$(_context9) {
302
+ while (1) switch (_context9.prev = _context9.next) {
303
+ case 0:
304
+ endTimeSessionIds = [];
305
+ global.fetch = jest.fn(function () {
306
+ return _promise.default.resolve({
307
+ status: 401,
308
+ ok: false
309
+ });
310
+ });
311
+ _context9.next = 4;
312
+ return callHistory.updateMissedCalls(endTimeSessionIds);
313
+ case 4:
314
+ response = _context9.sent;
315
+ convertedEndTimeSessionIds = endTimeSessionIds.map(function (session) {
316
+ return _objectSpread(_objectSpread({}, session), {}, {
317
+ endTime: new Date(session.endTime).getTime()
318
+ });
319
+ });
320
+ expect(response).toStrictEqual(_callHistoryFixtures.ERROR_DETAILS_401);
321
+ expect(response.statusCode).toBe(401);
322
+ _context9.t0 = expect(global.fetch);
323
+ _context9.t1 = _callHistoryFixtures.janusSetReadStateUrl;
324
+ _context9.t2 = _types2.HTTP_METHODS.POST;
325
+ _context9.t3 = _defineProperty2.default;
326
+ _context9.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
327
+ _context9.next = 15;
328
+ return webex.credentials.getUserToken();
329
+ case 15:
330
+ _context9.t5 = _context9.sent;
331
+ _context9.t6 = (0, _context9.t3)(_context9.t4, "Authorization", _context9.t5);
332
+ _context9.t7 = (0, _stringify.default)({
333
+ endTimeSessionIds: convertedEndTimeSessionIds
334
+ });
335
+ _context9.t8 = {
336
+ method: _context9.t2,
337
+ headers: _context9.t6,
338
+ body: _context9.t7
339
+ };
340
+ _context9.t0.toBeCalledOnceWith.call(_context9.t0, _context9.t1, _context9.t8);
341
+ expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith({
342
+ statusCode: 401
343
+ }, methodDetails);
344
+ case 21:
345
+ case "end":
346
+ return _context9.stop();
347
+ }
348
+ }, _callee9);
349
+ })));
140
350
  });
141
351
  });
142
352
  //# sourceMappingURL=CallHistory.test.js.map