@webex/calling 3.0.1-next.13 → 3.0.1-next.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallHistory/CallHistory.js +132 -18
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +214 -4
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallHistory/callHistoryFixtures.js +38 -1
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
- package/dist/CallHistory/constants.js +5 -1
- package/dist/CallHistory/constants.js.map +1 -1
- package/dist/CallHistory/types.js.map +1 -1
- package/dist/Events/types.js +2 -0
- package/dist/Events/types.js.map +1 -1
- package/dist/common/Utils.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +51 -1
- package/dist/module/CallHistory/callHistoryFixtures.js +38 -1
- package/dist/module/CallHistory/constants.js +4 -0
- package/dist/module/Events/types.js +2 -0
- package/dist/types/CallHistory/CallHistory.d.ts +4 -2
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallHistory/callHistoryFixtures.d.ts +19 -1
- package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
- package/dist/types/CallHistory/constants.d.ts +4 -0
- package/dist/types/CallHistory/constants.d.ts.map +1 -1
- package/dist/types/CallHistory/types.d.ts +10 -1
- package/dist/types/CallHistory/types.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +1 -1
- package/dist/types/Events/types.d.ts +29 -2
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
- package/dist/types/common/Utils.d.ts +2 -2
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -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
|
|
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
|
-
|
|
112
|
-
return _regenerator.default.wrap(function
|
|
113
|
-
while (1) switch (
|
|
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 =
|
|
116
|
-
limit =
|
|
117
|
-
sort =
|
|
118
|
-
sortBy =
|
|
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
|
-
|
|
134
|
-
|
|
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 =
|
|
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
|
|
187
|
+
return _context3.abrupt("return", responseDetails);
|
|
162
188
|
case 24:
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
errorInfo =
|
|
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
|
|
193
|
+
return _context3.abrupt("return", errorStatus);
|
|
168
194
|
case 29:
|
|
169
195
|
case "end":
|
|
170
|
-
return
|
|
196
|
+
return _context3.stop();
|
|
171
197
|
}
|
|
172
|
-
},
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|