@webex/calling 3.8.0 → 3.8.1-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallHistory/CallHistory.js +100 -63
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +115 -19
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallHistory/constants.js +9 -1
- package/dist/CallHistory/constants.js.map +1 -1
- package/dist/CallSettings/CallSettings.js +46 -13
- package/dist/CallSettings/CallSettings.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +62 -18
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +70 -7
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +153 -103
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +52 -15
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/constants.js +15 -1
- package/dist/CallSettings/constants.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +220 -159
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +53 -24
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +251 -189
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +96 -41
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +73 -48
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +96 -37
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/constants.js +105 -3
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +47 -18
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +2 -2
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/registration/register.js +359 -297
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +561 -163
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +156 -102
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +197 -49
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Contacts/constants.js +11 -1
- package/dist/Contacts/constants.js.map +1 -1
- package/dist/Errors/types.js +2 -0
- package/dist/Errors/types.js.map +1 -1
- package/dist/Events/impl/index.js +1 -1
- package/dist/Events/impl/index.js.map +1 -1
- package/dist/Metrics/index.js +102 -41
- package/dist/Metrics/index.js.map +1 -1
- package/dist/Metrics/index.test.js +10 -4
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/Metrics/types.js +4 -1
- package/dist/Metrics/types.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +154 -91
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +99 -19
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +105 -54
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +127 -17
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +198 -79
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/Voicemail.test.js +188 -23
- package/dist/Voicemail/Voicemail.test.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +277 -161
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +268 -10
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/constants.js +25 -1
- package/dist/Voicemail/constants.js.map +1 -1
- package/dist/Voicemail/types.js.map +1 -1
- package/dist/common/Utils.js +168 -104
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +199 -35
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js +2 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/testUtil.js +3 -0
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +32 -13
- package/dist/module/CallHistory/constants.js +6 -0
- package/dist/module/CallSettings/CallSettings.js +36 -3
- package/dist/module/CallSettings/UcmBackendConnector.js +50 -5
- package/dist/module/CallSettings/WxCallBackendConnector.js +54 -18
- package/dist/module/CallSettings/constants.js +12 -0
- package/dist/module/CallingClient/CallingClient.js +54 -16
- package/dist/module/CallingClient/calling/call.js +172 -121
- package/dist/module/CallingClient/calling/callManager.js +51 -26
- package/dist/module/CallingClient/constants.js +102 -2
- package/dist/module/CallingClient/line/index.js +37 -8
- package/dist/module/CallingClient/registration/register.js +103 -64
- package/dist/module/Contacts/ContactsClient.js +65 -21
- package/dist/module/Contacts/constants.js +10 -0
- package/dist/module/Errors/types.js +2 -0
- package/dist/module/Events/impl/index.js +1 -1
- package/dist/module/Metrics/index.js +57 -2
- package/dist/module/Metrics/types.js +3 -0
- package/dist/module/Voicemail/BroadworksBackendConnector.js +66 -17
- package/dist/module/Voicemail/UcmBackendConnector.js +51 -11
- package/dist/module/Voicemail/Voicemail.js +109 -9
- package/dist/module/Voicemail/WxCallBackendConnector.js +67 -18
- package/dist/module/Voicemail/constants.js +21 -0
- package/dist/module/common/Utils.js +51 -12
- package/dist/module/common/constants.js +1 -0
- package/dist/module/common/testUtil.js +3 -0
- package/dist/module/index.js +1 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallHistory/constants.d.ts +6 -0
- package/dist/types/CallHistory/constants.d.ts.map +1 -1
- package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/constants.d.ts +12 -0
- package/dist/types/CallSettings/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts +2 -3
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +102 -2
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +3 -1
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +1 -0
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/constants.d.ts +10 -0
- package/dist/types/Contacts/constants.d.ts.map +1 -1
- package/dist/types/Errors/types.d.ts +2 -0
- package/dist/types/Errors/types.d.ts.map +1 -1
- package/dist/types/Metrics/index.d.ts +1 -1
- package/dist/types/Metrics/index.d.ts.map +1 -1
- package/dist/types/Metrics/types.d.ts +7 -2
- package/dist/types/Metrics/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +11 -2
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/Voicemail.d.ts +1 -1
- package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts +3 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/constants.d.ts +21 -0
- package/dist/types/Voicemail/constants.d.ts.map +1 -1
- package/dist/types/Voicemail/types.d.ts +1 -1
- package/dist/types/Voicemail/types.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +4 -4
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/constants.d.ts +1 -0
- package/dist/types/common/constants.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +3 -0
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +12 -0
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -62,7 +62,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
62
62
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fromDate", '');
|
|
63
63
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loggerContext", {
|
|
64
64
|
file: _constants.CALL_HISTORY_FILE,
|
|
65
|
-
method:
|
|
65
|
+
method: _constants.METHODS.GET_CALL_HISTORY_DATA
|
|
66
66
|
});
|
|
67
67
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "userSessions", void 0);
|
|
68
68
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleSessionEvents", /*#__PURE__*/function () {
|
|
@@ -156,6 +156,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
156
156
|
ucmLinesResponse,
|
|
157
157
|
ucmLinesData,
|
|
158
158
|
responseDetails,
|
|
159
|
+
extendedError,
|
|
159
160
|
errorInfo,
|
|
160
161
|
errorStatus,
|
|
161
162
|
_args4 = arguments;
|
|
@@ -175,19 +176,18 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
175
176
|
this.fromDate = date.toISOString();
|
|
176
177
|
sortByParam = (0, _values.default)(_types.SORT_BY).includes(sortBy) ? sortBy : _types.SORT_BY.DEFAULT;
|
|
177
178
|
sortParam = (0, _values.default)(_types.SORT).includes(sort) ? sort : _types.SORT.DEFAULT;
|
|
178
|
-
_Logger.default.
|
|
179
|
+
_Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with days=").concat(days, ", limit=").concat(limit, ", sort=").concat(sortParam, ", sortBy=").concat(sortByParam), this.loggerContext);
|
|
180
|
+
_Logger.default.info("Janus API URL: ".concat(this.janusUrl), this.loggerContext);
|
|
179
181
|
_Logger.default.info("Call history from date : ".concat(this.fromDate), this.loggerContext);
|
|
180
|
-
_Logger.default.info("Call history sort type : ".concat(sortParam), this.loggerContext);
|
|
181
|
-
_Logger.default.info("Call history sortby type : ".concat(sortByParam), this.loggerContext);
|
|
182
182
|
url = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS).concat(_constants.FROM_DATE, "=").concat(this.fromDate, "&limit=").concat(limit, "&includeNewSessionTypes=true&sort=").concat(sortParam);
|
|
183
|
-
_context4.prev =
|
|
184
|
-
_context4.next =
|
|
183
|
+
_context4.prev = 13;
|
|
184
|
+
_context4.next = 16;
|
|
185
185
|
return this.webex.request({
|
|
186
186
|
uri: "".concat(url),
|
|
187
187
|
method: _types.HTTP_METHODS.GET,
|
|
188
188
|
service: _types.ALLOWED_SERVICES.JANUS
|
|
189
189
|
});
|
|
190
|
-
case
|
|
190
|
+
case 16:
|
|
191
191
|
janusResponse = _context4.sent;
|
|
192
192
|
this.userSessions = janusResponse.body;
|
|
193
193
|
if (sortByParam === _types.SORT_BY.START_TIME) {
|
|
@@ -204,11 +204,11 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
204
204
|
// Check the calling backend
|
|
205
205
|
callingBackend = (0, _Utils.getCallingBackEnd)(this.webex);
|
|
206
206
|
if (!(callingBackend === _types.CALLING_BACKEND.UCM)) {
|
|
207
|
-
_context4.next =
|
|
207
|
+
_context4.next = 28;
|
|
208
208
|
break;
|
|
209
209
|
}
|
|
210
210
|
if (!(this.userSessions[_constants2.USER_SESSIONS] && this.userSessions[_constants2.USER_SESSIONS].length > 0)) {
|
|
211
|
-
_context4.next =
|
|
211
|
+
_context4.next = 28;
|
|
212
212
|
break;
|
|
213
213
|
}
|
|
214
214
|
// Check if cucmDN exists and is valid in any of the userSessions
|
|
@@ -216,12 +216,12 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
216
216
|
return session.self.cucmDN && session.self.cucmDN.length > 0;
|
|
217
217
|
}); // If any user session has cucmDN, proceed to fetch line data
|
|
218
218
|
if (!hasCucmDN) {
|
|
219
|
-
_context4.next =
|
|
219
|
+
_context4.next = 28;
|
|
220
220
|
break;
|
|
221
221
|
}
|
|
222
|
-
_context4.next =
|
|
222
|
+
_context4.next = 26;
|
|
223
223
|
return this.fetchUCMLinesData();
|
|
224
|
-
case
|
|
224
|
+
case 26:
|
|
225
225
|
ucmLinesResponse = _context4.sent;
|
|
226
226
|
// Check if the Lines API response was successful
|
|
227
227
|
if (ucmLinesResponse.statusCode === 200 && (_ucmLinesResponse$dat = ucmLinesResponse.data.lines) !== null && _ucmLinesResponse$dat !== void 0 && _ucmLinesResponse$dat.devices) {
|
|
@@ -239,7 +239,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
239
239
|
}
|
|
240
240
|
});
|
|
241
241
|
}
|
|
242
|
-
case
|
|
242
|
+
case 28:
|
|
243
243
|
responseDetails = {
|
|
244
244
|
statusCode: this.userSessions[_constants2.STATUS_CODE],
|
|
245
245
|
data: {
|
|
@@ -247,18 +247,27 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
247
247
|
},
|
|
248
248
|
message: _constants2.SUCCESS_MESSAGE
|
|
249
249
|
};
|
|
250
|
+
_Logger.default.log("Successfully retrieved call history data with ".concat(this.userSessions[_constants2.USER_SESSIONS].length, " records"), this.loggerContext);
|
|
250
251
|
return _context4.abrupt("return", responseDetails);
|
|
251
252
|
case 33:
|
|
252
253
|
_context4.prev = 33;
|
|
253
|
-
_context4.t0 = _context4["catch"](
|
|
254
|
+
_context4.t0 = _context4["catch"](13);
|
|
255
|
+
extendedError = new Error("Failed to get call history: ".concat(_context4.t0));
|
|
256
|
+
_Logger.default.error(extendedError, {
|
|
257
|
+
file: _constants.CALL_HISTORY_FILE,
|
|
258
|
+
method: _constants.METHODS.GET_CALL_HISTORY_DATA
|
|
259
|
+
});
|
|
260
|
+
_context4.next = 39;
|
|
261
|
+
return (0, _Utils.uploadLogs)();
|
|
262
|
+
case 39:
|
|
254
263
|
errorInfo = _context4.t0;
|
|
255
264
|
errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, this.loggerContext);
|
|
256
265
|
return _context4.abrupt("return", errorStatus);
|
|
257
|
-
case
|
|
266
|
+
case 42:
|
|
258
267
|
case "end":
|
|
259
268
|
return _context4.stop();
|
|
260
269
|
}
|
|
261
|
-
}, _callee4, this, [[
|
|
270
|
+
}, _callee4, this, [[13, 33]]);
|
|
262
271
|
}));
|
|
263
272
|
function getCallHistoryData() {
|
|
264
273
|
return _getCallHistoryData.apply(this, arguments);
|
|
@@ -275,13 +284,13 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
275
284
|
key: "updateMissedCalls",
|
|
276
285
|
value: (function () {
|
|
277
286
|
var _updateMissedCalls = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(endTimeSessionIds) {
|
|
278
|
-
var loggerContext, santizedSessionIds, requestBody, updateMissedCallContentUrl, response, data, responseDetails, errorInfo, errorStatus;
|
|
287
|
+
var loggerContext, santizedSessionIds, requestBody, updateMissedCallContentUrl, response, data, responseDetails, extendedError, errorInfo, errorStatus;
|
|
279
288
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
280
289
|
while (1) switch (_context5.prev = _context5.next) {
|
|
281
290
|
case 0:
|
|
282
291
|
loggerContext = {
|
|
283
292
|
file: _constants.CALL_HISTORY_FILE,
|
|
284
|
-
method:
|
|
293
|
+
method: _constants.METHODS.UPDATE_MISSED_CALLS
|
|
285
294
|
}; // Convert endTime to milliseconds for each session
|
|
286
295
|
santizedSessionIds = endTimeSessionIds.map(function (session) {
|
|
287
296
|
return _objectSpread(_objectSpread({}, session), {}, {
|
|
@@ -291,16 +300,17 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
291
300
|
requestBody = {
|
|
292
301
|
endTimeSessionIds: santizedSessionIds
|
|
293
302
|
};
|
|
294
|
-
|
|
303
|
+
_Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with sessions: ").concat((0, _stringify.default)(santizedSessionIds)), loggerContext);
|
|
304
|
+
_context5.prev = 4;
|
|
295
305
|
updateMissedCallContentUrl = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS, "/").concat(_constants.UPDATE_MISSED_CALLS_ENDPOINT); // Make a POST request to update missed calls
|
|
296
306
|
_context5.t0 = fetch;
|
|
297
307
|
_context5.t1 = updateMissedCallContentUrl;
|
|
298
308
|
_context5.t2 = _types.HTTP_METHODS.POST;
|
|
299
309
|
_context5.t3 = _defineProperty2.default;
|
|
300
310
|
_context5.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
|
|
301
|
-
_context5.next =
|
|
311
|
+
_context5.next = 13;
|
|
302
312
|
return this.webex.credentials.getUserToken();
|
|
303
|
-
case
|
|
313
|
+
case 13:
|
|
304
314
|
_context5.t5 = _context5.sent;
|
|
305
315
|
_context5.t6 = (0, _context5.t3)(_context5.t4, "Authorization", _context5.t5);
|
|
306
316
|
_context5.t7 = (0, _stringify.default)(requestBody);
|
|
@@ -309,21 +319,21 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
309
319
|
headers: _context5.t6,
|
|
310
320
|
body: _context5.t7
|
|
311
321
|
};
|
|
312
|
-
_context5.next =
|
|
322
|
+
_context5.next = 19;
|
|
313
323
|
return (0, _context5.t0)(_context5.t1, _context5.t8);
|
|
314
|
-
case
|
|
324
|
+
case 19:
|
|
315
325
|
response = _context5.sent;
|
|
316
326
|
if (response.ok) {
|
|
317
|
-
_context5.next =
|
|
327
|
+
_context5.next = 22;
|
|
318
328
|
break;
|
|
319
329
|
}
|
|
320
330
|
throw new Error("".concat(response.status));
|
|
321
|
-
case
|
|
322
|
-
_context5.next =
|
|
331
|
+
case 22:
|
|
332
|
+
_context5.next = 24;
|
|
323
333
|
return response.json();
|
|
324
|
-
case
|
|
334
|
+
case 24:
|
|
325
335
|
data = _context5.sent;
|
|
326
|
-
_Logger.default.
|
|
336
|
+
_Logger.default.log("Missed calls are successfully read by the user", loggerContext);
|
|
327
337
|
responseDetails = {
|
|
328
338
|
statusCode: data.statusCode,
|
|
329
339
|
data: {
|
|
@@ -331,21 +341,30 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
331
341
|
},
|
|
332
342
|
message: _constants2.SUCCESS_MESSAGE
|
|
333
343
|
};
|
|
344
|
+
_Logger.default.log("Successfully updated ".concat(santizedSessionIds === null || santizedSessionIds === void 0 ? void 0 : santizedSessionIds.length, " missed calls"), loggerContext);
|
|
334
345
|
return _context5.abrupt("return", responseDetails);
|
|
335
|
-
case
|
|
336
|
-
_context5.prev =
|
|
337
|
-
_context5.t9 = _context5["catch"](
|
|
346
|
+
case 31:
|
|
347
|
+
_context5.prev = 31;
|
|
348
|
+
_context5.t9 = _context5["catch"](4);
|
|
349
|
+
extendedError = new Error("Failed to update missed calls: ".concat(_context5.t9));
|
|
350
|
+
_Logger.default.error(extendedError, {
|
|
351
|
+
file: _constants.CALL_HISTORY_FILE,
|
|
352
|
+
method: _constants.METHODS.UPDATE_MISSED_CALLS
|
|
353
|
+
});
|
|
354
|
+
_context5.next = 37;
|
|
355
|
+
return (0, _Utils.uploadLogs)();
|
|
356
|
+
case 37:
|
|
338
357
|
// Catch the 401 error from try block, return the error object to user
|
|
339
358
|
errorInfo = {
|
|
340
359
|
statusCode: _context5.t9 instanceof Error ? Number(_context5.t9.message) : ''
|
|
341
360
|
};
|
|
342
361
|
errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
|
|
343
362
|
return _context5.abrupt("return", errorStatus);
|
|
344
|
-
case
|
|
363
|
+
case 40:
|
|
345
364
|
case "end":
|
|
346
365
|
return _context5.stop();
|
|
347
366
|
}
|
|
348
|
-
}, _callee5, this, [[
|
|
367
|
+
}, _callee5, this, [[4, 31]]);
|
|
349
368
|
}));
|
|
350
369
|
function updateMissedCalls(_x4) {
|
|
351
370
|
return _updateMissedCalls.apply(this, arguments);
|
|
@@ -361,25 +380,26 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
361
380
|
key: "fetchUCMLinesData",
|
|
362
381
|
value: (function () {
|
|
363
382
|
var _fetchUCMLinesData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
364
|
-
var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, response, ucmLineDetails, errorInfo, errorStatus;
|
|
383
|
+
var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, response, ucmLineDetails, extendedError, errorInfo, errorStatus;
|
|
365
384
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
366
385
|
while (1) switch (_context6.prev = _context6.next) {
|
|
367
386
|
case 0:
|
|
368
387
|
loggerContext = {
|
|
369
388
|
file: _constants.CALL_HISTORY_FILE,
|
|
370
|
-
method:
|
|
389
|
+
method: _constants.METHODS.FETCH_UCM_LINES_DATA
|
|
371
390
|
};
|
|
372
391
|
vgEndpoint = (0, _Utils.getVgActionEndpoint)(this.webex, _types.CALLING_BACKEND.UCM);
|
|
373
392
|
userId = this.webex.internal.device.userId;
|
|
374
393
|
orgId = this.webex.internal.device.orgId;
|
|
375
394
|
linesURIForUCM = "".concat(vgEndpoint, "/").concat(_constants.VERSION_1, "/").concat(_constants.UNIFIED_COMMUNICATIONS, "/").concat(_constants.CONFIG, "/").concat(_constants.PEOPLE, "/").concat(userId, "/").concat(_constants.LINES, "?").concat(_constants.ORG_ID, "=").concat(orgId);
|
|
376
|
-
|
|
377
|
-
_context6.
|
|
395
|
+
_Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with URL: ").concat(linesURIForUCM), loggerContext);
|
|
396
|
+
_context6.prev = 6;
|
|
397
|
+
_context6.next = 9;
|
|
378
398
|
return this.webex.request({
|
|
379
399
|
uri: "".concat(linesURIForUCM),
|
|
380
400
|
method: _types.HTTP_METHODS.GET
|
|
381
401
|
});
|
|
382
|
-
case
|
|
402
|
+
case 9:
|
|
383
403
|
response = _context6.sent;
|
|
384
404
|
ucmLineDetails = {
|
|
385
405
|
statusCode: Number(response.statusCode),
|
|
@@ -388,19 +408,27 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
388
408
|
},
|
|
389
409
|
message: _constants2.SUCCESS_MESSAGE
|
|
390
410
|
};
|
|
391
|
-
_Logger.default.
|
|
411
|
+
_Logger.default.log("Line details fetched successfully", loggerContext);
|
|
392
412
|
return _context6.abrupt("return", ucmLineDetails);
|
|
393
|
-
case
|
|
394
|
-
_context6.prev =
|
|
395
|
-
_context6.t0 = _context6["catch"](
|
|
413
|
+
case 15:
|
|
414
|
+
_context6.prev = 15;
|
|
415
|
+
_context6.t0 = _context6["catch"](6);
|
|
416
|
+
extendedError = new Error("Failed to fetch UCM lines data: ".concat(_context6.t0));
|
|
417
|
+
_Logger.default.error(extendedError, {
|
|
418
|
+
file: _constants.CALL_HISTORY_FILE,
|
|
419
|
+
method: _constants.METHODS.FETCH_UCM_LINES_DATA
|
|
420
|
+
});
|
|
421
|
+
_context6.next = 21;
|
|
422
|
+
return (0, _Utils.uploadLogs)();
|
|
423
|
+
case 21:
|
|
396
424
|
errorInfo = _context6.t0;
|
|
397
425
|
errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
|
|
398
426
|
return _context6.abrupt("return", errorStatus);
|
|
399
|
-
case
|
|
427
|
+
case 24:
|
|
400
428
|
case "end":
|
|
401
429
|
return _context6.stop();
|
|
402
430
|
}
|
|
403
|
-
}, _callee6, this, [[
|
|
431
|
+
}, _callee6, this, [[6, 15]]);
|
|
404
432
|
}));
|
|
405
433
|
function fetchUCMLinesData() {
|
|
406
434
|
return _fetchUCMLinesData.apply(this, arguments);
|
|
@@ -417,19 +445,20 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
417
445
|
key: "deleteCallHistoryRecords",
|
|
418
446
|
value: (function () {
|
|
419
447
|
var _deleteCallHistoryRecords = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(deleteSessionIds) {
|
|
420
|
-
var loggerContext, invalidSessions, invalidSessionIds, santizedSessionIds, deleteRequestBody, deleteCallHistoryRecordContentUrl, response, data, responseDetails, errorInfo, errorStatus;
|
|
448
|
+
var loggerContext, invalidSessions, invalidSessionIds, santizedSessionIds, deleteRequestBody, deleteCallHistoryRecordContentUrl, response, data, responseDetails, extendedError, errorInfo, errorStatus;
|
|
421
449
|
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
422
450
|
while (1) switch (_context7.prev = _context7.next) {
|
|
423
451
|
case 0:
|
|
424
452
|
loggerContext = {
|
|
425
453
|
file: _constants.CALL_HISTORY_FILE,
|
|
426
|
-
method:
|
|
454
|
+
method: _constants.METHODS.DELETE_CALL_HISTORY_RECORDS
|
|
427
455
|
}; // Collect all sessions with invalid dates (endTime) in an array
|
|
428
456
|
invalidSessions = deleteSessionIds.filter(function (session) {
|
|
429
457
|
return (0, _isNan.default)(new Date(session.endTime).getTime());
|
|
430
458
|
});
|
|
459
|
+
_Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with sessions: ").concat((0, _stringify.default)(deleteSessionIds)), loggerContext);
|
|
431
460
|
if (!(invalidSessions.length > 0)) {
|
|
432
|
-
_context7.next =
|
|
461
|
+
_context7.next = 7;
|
|
433
462
|
break;
|
|
434
463
|
}
|
|
435
464
|
// If there are invalid sessions, return an error with details
|
|
@@ -444,7 +473,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
444
473
|
},
|
|
445
474
|
message: _constants2.FAILURE_MESSAGE
|
|
446
475
|
});
|
|
447
|
-
case
|
|
476
|
+
case 7:
|
|
448
477
|
// Convert endTime to milliseconds for each sessionId
|
|
449
478
|
santizedSessionIds = deleteSessionIds.map(function (session) {
|
|
450
479
|
return _objectSpread(_objectSpread({}, session), {}, {
|
|
@@ -454,16 +483,16 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
454
483
|
deleteRequestBody = {
|
|
455
484
|
deleteSessionIds: santizedSessionIds
|
|
456
485
|
};
|
|
457
|
-
_context7.prev =
|
|
486
|
+
_context7.prev = 9;
|
|
458
487
|
deleteCallHistoryRecordContentUrl = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS, "/").concat(_constants.DELETE_CALL_HISTORY_RECORDS_ENDPOINT); // Make a POST request to delete call history records
|
|
459
488
|
_context7.t0 = fetch;
|
|
460
489
|
_context7.t1 = deleteCallHistoryRecordContentUrl;
|
|
461
490
|
_context7.t2 = _types.HTTP_METHODS.POST;
|
|
462
491
|
_context7.t3 = _defineProperty2.default;
|
|
463
492
|
_context7.t4 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
|
|
464
|
-
_context7.next =
|
|
493
|
+
_context7.next = 18;
|
|
465
494
|
return this.webex.credentials.getUserToken();
|
|
466
|
-
case
|
|
495
|
+
case 18:
|
|
467
496
|
_context7.t5 = _context7.sent;
|
|
468
497
|
_context7.t6 = (0, _context7.t3)(_context7.t4, "Authorization", _context7.t5);
|
|
469
498
|
_context7.t7 = (0, _stringify.default)(deleteRequestBody);
|
|
@@ -472,21 +501,21 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
472
501
|
headers: _context7.t6,
|
|
473
502
|
body: _context7.t7
|
|
474
503
|
};
|
|
475
|
-
_context7.next =
|
|
504
|
+
_context7.next = 24;
|
|
476
505
|
return (0, _context7.t0)(_context7.t1, _context7.t8);
|
|
477
|
-
case
|
|
506
|
+
case 24:
|
|
478
507
|
response = _context7.sent;
|
|
479
508
|
if (response.ok) {
|
|
480
|
-
_context7.next =
|
|
509
|
+
_context7.next = 27;
|
|
481
510
|
break;
|
|
482
511
|
}
|
|
483
512
|
throw new Error("".concat(response.status));
|
|
484
|
-
case
|
|
485
|
-
_context7.next =
|
|
513
|
+
case 27:
|
|
514
|
+
_context7.next = 29;
|
|
486
515
|
return response.json();
|
|
487
|
-
case
|
|
516
|
+
case 29:
|
|
488
517
|
data = _context7.sent;
|
|
489
|
-
_Logger.default.
|
|
518
|
+
_Logger.default.log("Successfully deleted ".concat(santizedSessionIds === null || santizedSessionIds === void 0 ? void 0 : santizedSessionIds.length, " call history records"), loggerContext);
|
|
490
519
|
responseDetails = {
|
|
491
520
|
statusCode: data.statusCode,
|
|
492
521
|
data: {
|
|
@@ -495,20 +524,28 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
495
524
|
message: _constants2.SUCCESS_MESSAGE
|
|
496
525
|
};
|
|
497
526
|
return _context7.abrupt("return", responseDetails);
|
|
498
|
-
case
|
|
499
|
-
_context7.prev =
|
|
500
|
-
_context7.t9 = _context7["catch"](
|
|
527
|
+
case 35:
|
|
528
|
+
_context7.prev = 35;
|
|
529
|
+
_context7.t9 = _context7["catch"](9);
|
|
530
|
+
extendedError = new Error("Failed to delete call history records: ".concat(_context7.t9));
|
|
531
|
+
_Logger.default.error(extendedError, {
|
|
532
|
+
file: _constants.CALL_HISTORY_FILE,
|
|
533
|
+
method: _constants.METHODS.DELETE_CALL_HISTORY_RECORDS
|
|
534
|
+
});
|
|
535
|
+
_context7.next = 41;
|
|
536
|
+
return (0, _Utils.uploadLogs)();
|
|
537
|
+
case 41:
|
|
501
538
|
// Catch the 401 error from try block, return the error object to user
|
|
502
539
|
errorInfo = {
|
|
503
540
|
statusCode: _context7.t9 instanceof Error ? Number(_context7.t9.message) : ''
|
|
504
541
|
};
|
|
505
542
|
errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
|
|
506
543
|
return _context7.abrupt("return", errorStatus);
|
|
507
|
-
case
|
|
544
|
+
case 44:
|
|
508
545
|
case "end":
|
|
509
546
|
return _context7.stop();
|
|
510
547
|
}
|
|
511
|
-
}, _callee7, this, [[
|
|
548
|
+
}, _callee7, this, [[9, 35]]);
|
|
512
549
|
}));
|
|
513
550
|
function deleteCallHistoryRecords(_x5) {
|
|
514
551
|
return _deleteCallHistoryRecords.apply(this, arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Logger","_Utils","_constants","_constants2","_types2","_impl","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","CallHistory","exports","_Eventing","_inherits2","_super","webex","logger","_this","_classCallCheck2","_assertThisInitialized2","file","CALL_HISTORY_FILE","method","_ref","_asyncToGenerator2","_regenerator","mark","_callee","event","wrap","_callee$","_context","prev","next","data","userSessions","emit","COMMON_EVENT_KEYS","CALL_HISTORY_USER_SESSION_INFO","stop","_x","_ref2","_callee2","_callee2$","_context2","userReadSessions","CALL_HISTORY_USER_VIEWED_SESSIONS","_x2","_ref3","_callee3","_callee3$","_context3","deletedSessions","CALL_HISTORY_USER_SESSIONS_DELETED","_x3","sdkConnector","SDKConnector","getWebex","setWebex","janusUrl","internal","services","_serviceUrls","janus","registerSessionsListener","log","setLogger","level","_createClass2","key","value","_getCallHistoryData","_callee4","days","limit","sort","sortBy","date","sortByParam","sortParam","url","janusResponse","callingBackend","hasCucmDN","_ucmLinesResponse$dat","ucmLinesResponse","ucmLinesData","responseDetails","errorInfo","errorStatus","_args4","_callee4$","_context4","undefined","NUMBER_OF_DAYS","LIMIT","SORT","DEFAULT","SORT_BY","Date","setDate","getDate","fromDate","toISOString","_values","includes","concat","loggerContext","info","HISTORY","USER_SESSIONS","FROM_DATE","request","uri","HTTP_METHODS","GET","service","ALLOWED_SERVICES","JANUS","sent","body","START_TIME","DESC","element","compareElement","getTime","ASC","getCallingBackEnd","CALLING_BACKEND","UCM","some","session","self","cucmDN","fetchUCMLinesData","statusCode","lines","devices","device","line","dnorpattern","ucmLineNumber","index","STATUS_CODE","message","SUCCESS_MESSAGE","abrupt","t0","serviceErrorCodeHandler","getCallHistoryData","_updateMissedCalls","_callee5","endTimeSessionIds","santizedSessionIds","requestBody","updateMissedCallContentUrl","response","_callee5$","_context5","map","endTime","UPDATE_MISSED_CALLS_ENDPOINT","fetch","t1","t2","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","_stringify","t8","headers","ok","Error","status","json","readStatusMessage","SET_READ_STATE_SUCCESS_MESSAGE","t9","Number","updateMissedCalls","_x4","_fetchUCMLinesData","_callee6","vgEndpoint","userId","orgId","linesURIForUCM","ucmLineDetails","_callee6$","_context6","getVgActionEndpoint","VERSION_1","UNIFIED_COMMUNICATIONS","CONFIG","PEOPLE","LINES","ORG_ID","_deleteCallHistoryRecords","_callee7","deleteSessionIds","invalidSessions","invalidSessionIds","deleteRequestBody","deleteCallHistoryRecordContentUrl","_callee7$","_context7","_isNan","sessionId","join","deleteStatusMessage","SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE","FAILURE_MESSAGE","DELETE_CALL_HISTORY_RECORDS_ENDPOINT","SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE","deleteCallHistoryRecords","_x5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","handleSessionEvents","CALL_SESSION_EVENT_LEGACY","CALL_SESSION_EVENT_VIEWED","handleUserReadSessionEvents","CALL_SESSION_EVENT_DELETED","handleUserSessionsDeletedEvents","Eventing","createCallHistoryClient"],"sources":["CallHistory.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable no-underscore-dangle */\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n SORT,\n SORT_BY,\n CALLING_BACKEND,\n} from '../common/types';\nimport {\n ICallHistory,\n JanusResponseEvent,\n LoggerInterface,\n UpdateMissedCallsResponse,\n UCMLinesResponse,\n DeleteCallHistoryRecordsResponse,\n} from './types';\nimport log from '../Logger';\nimport {serviceErrorCodeHandler, getVgActionEndpoint, getCallingBackEnd} from '../common/Utils';\nimport {\n APPLICATION_JSON,\n CALL_HISTORY_FILE,\n CONTENT_TYPE,\n FROM_DATE,\n HISTORY,\n LIMIT,\n NUMBER_OF_DAYS,\n UPDATE_MISSED_CALLS_ENDPOINT,\n SET_READ_STATE_SUCCESS_MESSAGE,\n VERSION_1,\n UNIFIED_COMMUNICATIONS,\n CONFIG,\n PEOPLE,\n LINES,\n ORG_ID,\n DELETE_CALL_HISTORY_RECORDS_ENDPOINT,\n SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE,\n SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE,\n} from './constants';\nimport {FAILURE_MESSAGE, STATUS_CODE, SUCCESS_MESSAGE, USER_SESSIONS} from '../common/constants';\nimport {\n COMMON_EVENT_KEYS,\n CallHistoryEventTypes,\n CallSessionEvent,\n MOBIUS_EVENT_KEYS,\n UserSession,\n EndTimeSessionId,\n CallSessionViewedEvent,\n SanitizedEndTimeAndSessionId,\n UCMLinesApiResponse,\n CallSessionDeletedEvent,\n} from '../Events/types';\nimport {Eventing} from '../Events/impl';\n/**\n * `CallHistory` module is designed to facilitate the retrieval of Call History Records by providing a set of APIs.\n *\n * This code snippet demonstrates how to create an instance of `CallHistory` using webex and logger.\n *\n * @example\n * ```javascript\n * const callHistory = createCallHistoryClient(webex, logger);\n * ```\n */\nexport class CallHistory extends Eventing<CallHistoryEventTypes> implements ICallHistory {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private janusUrl = '';\n\n private fromDate = '';\n\n private loggerContext = {\n file: CALL_HISTORY_FILE,\n method: 'getCallHistoryData',\n };\n\n private userSessions: UserSession[] | undefined;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n super();\n this.sdkConnector = SDKConnector;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.janusUrl = this.webex.internal.services._serviceUrls.janus;\n this.registerSessionsListener();\n log.setLogger(logger.level, CALL_HISTORY_FILE);\n }\n\n /**\n * Function to display the Janus API response.\n * @param days - Number of days to fetch the call history data.\n * @param limit - Number of records to be fetched.\n * @param sort - Sort the records in ascending or descending order.\n * @param sortBy - Sort the records by start time or end time.\n */\n public async getCallHistoryData(\n days: number = NUMBER_OF_DAYS,\n limit: number = LIMIT,\n sort: SORT = SORT.DEFAULT,\n sortBy: SORT_BY = SORT_BY.DEFAULT\n ): Promise<JanusResponseEvent> {\n /*\n 1. Mandatory field for Janus API - fromDate\n 2. Calculating the fromDate by deducting the NUMBER_OF_DAYS with the current date\n */\n const date = new Date();\n\n date.setDate(date.getDate() - days);\n this.fromDate = date.toISOString();\n const sortByParam = Object.values(SORT_BY).includes(sortBy) ? sortBy : SORT_BY.DEFAULT;\n const sortParam = Object.values(SORT).includes(sort) ? sort : SORT.DEFAULT;\n\n log.log(`Janus API URL ${this.janusUrl}`, this.loggerContext);\n log.info(`Call history from date : ${this.fromDate}`, this.loggerContext);\n log.info(`Call history sort type : ${sortParam}`, this.loggerContext);\n log.info(`Call history sortby type : ${sortByParam}`, this.loggerContext);\n const url = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}${FROM_DATE}=${this.fromDate}&limit=${limit}&includeNewSessionTypes=true&sort=${sortParam}`;\n\n try {\n const janusResponse = <WebexRequestPayload>await this.webex.request({\n uri: `${url}`,\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.JANUS,\n });\n\n this.userSessions = janusResponse.body as UserSession[];\n if (sortByParam === SORT_BY.START_TIME) {\n if (sortParam === SORT.DESC) {\n this.userSessions[USER_SESSIONS].sort(\n (element: Date, compareElement: Date) =>\n new Date(compareElement[sortByParam]).getTime() -\n new Date(element[sortByParam]).getTime()\n );\n } else if (sortParam === SORT.ASC) {\n this.userSessions[USER_SESSIONS].sort(\n (element: Date, compareElement: Date) =>\n new Date(element[sortByParam]).getTime() -\n new Date(compareElement[sortByParam]).getTime()\n );\n }\n }\n // Check the calling backend\n const callingBackend = getCallingBackEnd(this.webex);\n if (callingBackend === CALLING_BACKEND.UCM) {\n // Check if userSessions exist and the length is greater than 0\n if (this.userSessions[USER_SESSIONS] && this.userSessions[USER_SESSIONS].length > 0) {\n // Check if cucmDN exists and is valid in any of the userSessions\n const hasCucmDN = this.userSessions[USER_SESSIONS].some(\n (session: UserSession) => session.self.cucmDN && session.self.cucmDN.length > 0\n );\n // If any user session has cucmDN, proceed to fetch line data\n if (hasCucmDN) {\n // Fetch the Lines data\n const ucmLinesResponse = await this.fetchUCMLinesData();\n\n // Check if the Lines API response was successful\n if (ucmLinesResponse.statusCode === 200 && ucmLinesResponse.data.lines?.devices) {\n const ucmLinesData = ucmLinesResponse.data.lines.devices;\n\n // Iterate over user sessions and match with Lines data\n this.userSessions[USER_SESSIONS].forEach((session: UserSession) => {\n const cucmDN = session.self.cucmDN;\n\n if (cucmDN) {\n ucmLinesData.forEach((device) => {\n device.lines.forEach((line) => {\n if (line.dnorpattern === cucmDN) {\n session.self.ucmLineNumber = line.index; // Assign the ucmLineNumber\n }\n });\n });\n }\n });\n }\n }\n }\n }\n\n const responseDetails = {\n statusCode: this.userSessions[STATUS_CODE],\n data: {\n userSessions: this.userSessions[USER_SESSIONS],\n },\n message: SUCCESS_MESSAGE,\n };\n\n return responseDetails;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, this.loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to update the missed call status in the call history using sessionId and time.\n * @param endTimeSessionIds - An array of objects containing endTime and sessionId of the missed call history records\n * @returns {Promise} Resolves to an object of type {@link UpdateMissedCallsResponse}.Response details with success or error status.\n */\n public async updateMissedCalls(\n endTimeSessionIds: EndTimeSessionId[]\n ): Promise<UpdateMissedCallsResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: 'updateMissedCalls',\n };\n // Convert endTime to milliseconds for each session\n const santizedSessionIds: SanitizedEndTimeAndSessionId[] = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n const requestBody = {\n endTimeSessionIds: santizedSessionIds,\n };\n try {\n const updateMissedCallContentUrl = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}/${UPDATE_MISSED_CALLS_ENDPOINT}`;\n // Make a POST request to update missed calls\n const response = await fetch(updateMissedCallContentUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await this.webex.credentials.getUserToken(),\n },\n body: JSON.stringify(requestBody),\n });\n if (!response.ok) {\n throw new Error(`${response.status}`);\n }\n\n const data: UpdateMissedCallsResponse = await response.json();\n log.info(`Missed calls are succesfully read by the user`, loggerContext);\n const responseDetails: UpdateMissedCallsResponse = {\n statusCode: data.statusCode as number,\n data: {\n readStatusMessage: SET_READ_STATE_SUCCESS_MESSAGE,\n },\n message: SUCCESS_MESSAGE,\n };\n\n return responseDetails;\n } catch (err: unknown) {\n // Catch the 401 error from try block, return the error object to user\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to display the UCM Lines API response.\n * @returns {Promise} Resolves to an object of type {@link UCMLinesResponse}.Response details with success or error status.\n */\n private async fetchUCMLinesData(): Promise<UCMLinesResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: 'fetchLinesData',\n };\n const vgEndpoint = getVgActionEndpoint(this.webex, CALLING_BACKEND.UCM);\n const userId = this.webex.internal.device.userId;\n const orgId = this.webex.internal.device.orgId;\n const linesURIForUCM = `${vgEndpoint}/${VERSION_1}/${UNIFIED_COMMUNICATIONS}/${CONFIG}/${PEOPLE}/${userId}/${LINES}?${ORG_ID}=${orgId}`;\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${linesURIForUCM}`,\n method: HTTP_METHODS.GET,\n });\n\n const ucmLineDetails: UCMLinesResponse = {\n statusCode: Number(response.statusCode),\n data: {\n lines: response.body as UCMLinesApiResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.info(`Line details fetched successfully`, loggerContext);\n\n return ucmLineDetails;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to delete the call history records using sessionId and endTime.\n * @param deleteSessionIds - An array of objects containing endTime and sessionId of the call history records\n * @returns {Promise} Resolves to an object of type {@link DeleteCallHistoryRecordsResponse}.Response details with success or error status.\n */\n public async deleteCallHistoryRecords(\n deleteSessionIds: EndTimeSessionId[]\n ): Promise<DeleteCallHistoryRecordsResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: 'deleteCallHistoryRecords',\n };\n\n // Collect all sessions with invalid dates (endTime) in an array\n const invalidSessions = deleteSessionIds.filter((session) =>\n Number.isNaN(new Date(session.endTime).getTime())\n );\n\n if (invalidSessions.length > 0) {\n // If there are invalid sessions, return an error with details\n const invalidSessionIds = invalidSessions.map((session) => session.sessionId).join(', ');\n log.info(\n `The provided date is malformed or invalid for session IDs: ${invalidSessionIds}`,\n loggerContext\n );\n\n return {\n statusCode: 400,\n data: {\n deleteStatusMessage: SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE,\n },\n message: FAILURE_MESSAGE,\n };\n }\n\n // Convert endTime to milliseconds for each sessionId\n const santizedSessionIds: SanitizedEndTimeAndSessionId[] = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n const deleteRequestBody = {\n deleteSessionIds: santizedSessionIds,\n };\n try {\n const deleteCallHistoryRecordContentUrl = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}/${DELETE_CALL_HISTORY_RECORDS_ENDPOINT}`;\n // Make a POST request to delete call history records\n const response = await fetch(deleteCallHistoryRecordContentUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await this.webex.credentials.getUserToken(),\n },\n body: JSON.stringify(deleteRequestBody),\n });\n if (!response.ok) {\n throw new Error(`${response.status}`);\n }\n\n const data: DeleteCallHistoryRecordsResponse = await response.json();\n log.info(`Call history records are succesfully deleted by the user`, loggerContext);\n const responseDetails: DeleteCallHistoryRecordsResponse = {\n statusCode: data.statusCode as number,\n data: {\n deleteStatusMessage: SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE,\n },\n message: SUCCESS_MESSAGE,\n };\n\n return responseDetails;\n } catch (err: unknown) {\n // Catch the 401 error from try block, return the error object to user\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n handleSessionEvents = async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n this.emit(COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO, event as CallSessionEvent);\n }\n };\n\n handleUserReadSessionEvents = async (event?: CallSessionViewedEvent) => {\n if (event && event.data.userReadSessions.userReadSessions) {\n this.emit(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS,\n event as CallSessionViewedEvent\n );\n }\n };\n\n handleUserSessionsDeletedEvents = async (event?: CallSessionDeletedEvent) => {\n if (event && event.data.deletedSessions) {\n this.emit(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED,\n event as CallSessionDeletedEvent\n );\n }\n };\n\n /**\n *\n */\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n this.handleSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY,\n this.handleSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionViewedEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED,\n this.handleUserReadSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionDeletedEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED,\n this.handleUserSessionsDeletedEvents\n );\n }\n}\n/**\n * Creates a `CallHistory` client instance for accessing Call History APIs.\n *\n * @param {WebexSDK} webex - `Webex SDK` instance.\n * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.\n */\nexport const createCallHistoryClient = (webex: WebexSDK, logger: LoggerInterface): ICallHistory =>\n new CallHistory(webex, logger);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Logger","_Utils","_constants","_constants2","_types2","_impl","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","CallHistory","exports","_Eventing","_inherits2","_super","webex","logger","_this","_classCallCheck2","_assertThisInitialized2","file","CALL_HISTORY_FILE","method","METHODS","GET_CALL_HISTORY_DATA","_ref","_asyncToGenerator2","_regenerator","mark","_callee","event","wrap","_callee$","_context","prev","next","data","userSessions","emit","COMMON_EVENT_KEYS","CALL_HISTORY_USER_SESSION_INFO","stop","_x","_ref2","_callee2","_callee2$","_context2","userReadSessions","CALL_HISTORY_USER_VIEWED_SESSIONS","_x2","_ref3","_callee3","_callee3$","_context3","deletedSessions","CALL_HISTORY_USER_SESSIONS_DELETED","_x3","sdkConnector","SDKConnector","getWebex","setWebex","janusUrl","internal","services","_serviceUrls","janus","registerSessionsListener","log","setLogger","level","_createClass2","key","value","_getCallHistoryData","_callee4","days","limit","sort","sortBy","date","sortByParam","sortParam","url","janusResponse","callingBackend","hasCucmDN","_ucmLinesResponse$dat","ucmLinesResponse","ucmLinesData","responseDetails","extendedError","errorInfo","errorStatus","_args4","_callee4$","_context4","undefined","NUMBER_OF_DAYS","LIMIT","SORT","DEFAULT","SORT_BY","Date","setDate","getDate","fromDate","toISOString","_values","includes","info","concat","METHOD_START_MESSAGE","loggerContext","HISTORY","USER_SESSIONS","FROM_DATE","request","uri","HTTP_METHODS","GET","service","ALLOWED_SERVICES","JANUS","sent","body","START_TIME","DESC","element","compareElement","getTime","ASC","getCallingBackEnd","CALLING_BACKEND","UCM","some","session","self","cucmDN","fetchUCMLinesData","statusCode","lines","devices","device","line","dnorpattern","ucmLineNumber","index","STATUS_CODE","message","SUCCESS_MESSAGE","abrupt","t0","Error","error","uploadLogs","serviceErrorCodeHandler","getCallHistoryData","_updateMissedCalls","_callee5","endTimeSessionIds","santizedSessionIds","requestBody","updateMissedCallContentUrl","response","_callee5$","_context5","UPDATE_MISSED_CALLS","map","endTime","_stringify","UPDATE_MISSED_CALLS_ENDPOINT","fetch","t1","t2","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","t8","headers","ok","status","json","readStatusMessage","SET_READ_STATE_SUCCESS_MESSAGE","t9","Number","updateMissedCalls","_x4","_fetchUCMLinesData","_callee6","vgEndpoint","userId","orgId","linesURIForUCM","ucmLineDetails","_callee6$","_context6","FETCH_UCM_LINES_DATA","getVgActionEndpoint","VERSION_1","UNIFIED_COMMUNICATIONS","CONFIG","PEOPLE","LINES","ORG_ID","_deleteCallHistoryRecords","_callee7","deleteSessionIds","invalidSessions","invalidSessionIds","deleteRequestBody","deleteCallHistoryRecordContentUrl","_callee7$","_context7","DELETE_CALL_HISTORY_RECORDS","_isNan","sessionId","join","deleteStatusMessage","SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE","FAILURE_MESSAGE","DELETE_CALL_HISTORY_RECORDS_ENDPOINT","SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE","deleteCallHistoryRecords","_x5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","handleSessionEvents","CALL_SESSION_EVENT_LEGACY","CALL_SESSION_EVENT_VIEWED","handleUserReadSessionEvents","CALL_SESSION_EVENT_DELETED","handleUserSessionsDeletedEvents","Eventing","createCallHistoryClient"],"sources":["CallHistory.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable no-underscore-dangle */\nimport ExtendedError from '../Errors/catalog/ExtendedError';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n SORT,\n SORT_BY,\n CALLING_BACKEND,\n} from '../common/types';\nimport {\n ICallHistory,\n JanusResponseEvent,\n LoggerInterface,\n UpdateMissedCallsResponse,\n UCMLinesResponse,\n DeleteCallHistoryRecordsResponse,\n} from './types';\nimport log from '../Logger';\nimport {\n serviceErrorCodeHandler,\n getVgActionEndpoint,\n getCallingBackEnd,\n uploadLogs,\n} from '../common/Utils';\nimport {\n APPLICATION_JSON,\n CALL_HISTORY_FILE,\n CONTENT_TYPE,\n FROM_DATE,\n HISTORY,\n LIMIT,\n NUMBER_OF_DAYS,\n UPDATE_MISSED_CALLS_ENDPOINT,\n SET_READ_STATE_SUCCESS_MESSAGE,\n VERSION_1,\n UNIFIED_COMMUNICATIONS,\n CONFIG,\n PEOPLE,\n LINES,\n ORG_ID,\n DELETE_CALL_HISTORY_RECORDS_ENDPOINT,\n SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE,\n SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE,\n METHODS,\n} from './constants';\nimport {\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n USER_SESSIONS,\n} from '../common/constants';\nimport {\n COMMON_EVENT_KEYS,\n CallHistoryEventTypes,\n CallSessionEvent,\n MOBIUS_EVENT_KEYS,\n UserSession,\n EndTimeSessionId,\n CallSessionViewedEvent,\n SanitizedEndTimeAndSessionId,\n UCMLinesApiResponse,\n CallSessionDeletedEvent,\n} from '../Events/types';\nimport {Eventing} from '../Events/impl';\n/**\n * `CallHistory` module is designed to facilitate the retrieval of Call History Records by providing a set of APIs.\n *\n * This code snippet demonstrates how to create an instance of `CallHistory` using webex and logger.\n *\n * @example\n * ```javascript\n * const callHistory = createCallHistoryClient(webex, logger);\n * ```\n */\nexport class CallHistory extends Eventing<CallHistoryEventTypes> implements ICallHistory {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private janusUrl = '';\n\n private fromDate = '';\n\n private loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n };\n\n private userSessions: UserSession[] | undefined;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n super();\n this.sdkConnector = SDKConnector;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.janusUrl = this.webex.internal.services._serviceUrls.janus;\n this.registerSessionsListener();\n log.setLogger(logger.level, CALL_HISTORY_FILE);\n }\n\n /**\n * Function to display the Janus API response.\n * @param days - Number of days to fetch the call history data.\n * @param limit - Number of records to be fetched.\n * @param sort - Sort the records in ascending or descending order.\n * @param sortBy - Sort the records by start time or end time.\n */\n public async getCallHistoryData(\n days: number = NUMBER_OF_DAYS,\n limit: number = LIMIT,\n sort: SORT = SORT.DEFAULT,\n sortBy: SORT_BY = SORT_BY.DEFAULT\n ): Promise<JanusResponseEvent> {\n /*\n 1. Mandatory field for Janus API - fromDate\n 2. Calculating the fromDate by deducting the NUMBER_OF_DAYS with the current date\n */\n const date = new Date();\n\n date.setDate(date.getDate() - days);\n this.fromDate = date.toISOString();\n const sortByParam = Object.values(SORT_BY).includes(sortBy) ? sortBy : SORT_BY.DEFAULT;\n const sortParam = Object.values(SORT).includes(sort) ? sort : SORT.DEFAULT;\n\n log.info(\n `${METHOD_START_MESSAGE} with days=${days}, limit=${limit}, sort=${sortParam}, sortBy=${sortByParam}`,\n this.loggerContext\n );\n\n log.info(`Janus API URL: ${this.janusUrl}`, this.loggerContext);\n log.info(`Call history from date : ${this.fromDate}`, this.loggerContext);\n const url = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}${FROM_DATE}=${this.fromDate}&limit=${limit}&includeNewSessionTypes=true&sort=${sortParam}`;\n\n try {\n const janusResponse = <WebexRequestPayload>await this.webex.request({\n uri: `${url}`,\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.JANUS,\n });\n\n this.userSessions = janusResponse.body as UserSession[];\n if (sortByParam === SORT_BY.START_TIME) {\n if (sortParam === SORT.DESC) {\n this.userSessions[USER_SESSIONS].sort(\n (element: Date, compareElement: Date) =>\n new Date(compareElement[sortByParam]).getTime() -\n new Date(element[sortByParam]).getTime()\n );\n } else if (sortParam === SORT.ASC) {\n this.userSessions[USER_SESSIONS].sort(\n (element: Date, compareElement: Date) =>\n new Date(element[sortByParam]).getTime() -\n new Date(compareElement[sortByParam]).getTime()\n );\n }\n }\n // Check the calling backend\n const callingBackend = getCallingBackEnd(this.webex);\n if (callingBackend === CALLING_BACKEND.UCM) {\n // Check if userSessions exist and the length is greater than 0\n if (this.userSessions[USER_SESSIONS] && this.userSessions[USER_SESSIONS].length > 0) {\n // Check if cucmDN exists and is valid in any of the userSessions\n const hasCucmDN = this.userSessions[USER_SESSIONS].some(\n (session: UserSession) => session.self.cucmDN && session.self.cucmDN.length > 0\n );\n // If any user session has cucmDN, proceed to fetch line data\n if (hasCucmDN) {\n // Fetch the Lines data\n const ucmLinesResponse = await this.fetchUCMLinesData();\n\n // Check if the Lines API response was successful\n if (ucmLinesResponse.statusCode === 200 && ucmLinesResponse.data.lines?.devices) {\n const ucmLinesData = ucmLinesResponse.data.lines.devices;\n\n // Iterate over user sessions and match with Lines data\n this.userSessions[USER_SESSIONS].forEach((session: UserSession) => {\n const cucmDN = session.self.cucmDN;\n\n if (cucmDN) {\n ucmLinesData.forEach((device) => {\n device.lines.forEach((line) => {\n if (line.dnorpattern === cucmDN) {\n session.self.ucmLineNumber = line.index; // Assign the ucmLineNumber\n }\n });\n });\n }\n });\n }\n }\n }\n }\n\n const responseDetails = {\n statusCode: this.userSessions[STATUS_CODE],\n data: {\n userSessions: this.userSessions[USER_SESSIONS],\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(\n `Successfully retrieved call history data with ${this.userSessions[USER_SESSIONS].length} records`,\n this.loggerContext\n );\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to get call history: ${err}`) as ExtendedError;\n log.error(extendedError, {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA});\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, this.loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to update the missed call status in the call history using sessionId and time.\n * @param endTimeSessionIds - An array of objects containing endTime and sessionId of the missed call history records\n * @returns {Promise} Resolves to an object of type {@link UpdateMissedCallsResponse}.Response details with success or error status.\n */\n public async updateMissedCalls(\n endTimeSessionIds: EndTimeSessionId[]\n ): Promise<UpdateMissedCallsResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.UPDATE_MISSED_CALLS,\n };\n // Convert endTime to milliseconds for each session\n const santizedSessionIds: SanitizedEndTimeAndSessionId[] = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n const requestBody = {\n endTimeSessionIds: santizedSessionIds,\n };\n\n log.info(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(santizedSessionIds)}`,\n loggerContext\n );\n try {\n const updateMissedCallContentUrl = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}/${UPDATE_MISSED_CALLS_ENDPOINT}`;\n // Make a POST request to update missed calls\n const response = await fetch(updateMissedCallContentUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await this.webex.credentials.getUserToken(),\n },\n body: JSON.stringify(requestBody),\n });\n if (!response.ok) {\n throw new Error(`${response.status}`);\n }\n\n const data: UpdateMissedCallsResponse = await response.json();\n log.log(`Missed calls are successfully read by the user`, loggerContext);\n const responseDetails: UpdateMissedCallsResponse = {\n statusCode: data.statusCode as number,\n data: {\n readStatusMessage: SET_READ_STATE_SUCCESS_MESSAGE,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully updated ${santizedSessionIds?.length} missed calls`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to update missed calls: ${err}`) as ExtendedError;\n log.error(extendedError, {file: CALL_HISTORY_FILE, method: METHODS.UPDATE_MISSED_CALLS});\n await uploadLogs();\n\n // Catch the 401 error from try block, return the error object to user\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to display the UCM Lines API response.\n * @returns {Promise} Resolves to an object of type {@link UCMLinesResponse}.Response details with success or error status.\n */\n private async fetchUCMLinesData(): Promise<UCMLinesResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n };\n const vgEndpoint = getVgActionEndpoint(this.webex, CALLING_BACKEND.UCM);\n const userId = this.webex.internal.device.userId;\n const orgId = this.webex.internal.device.orgId;\n const linesURIForUCM = `${vgEndpoint}/${VERSION_1}/${UNIFIED_COMMUNICATIONS}/${CONFIG}/${PEOPLE}/${userId}/${LINES}?${ORG_ID}=${orgId}`;\n\n log.info(`${METHOD_START_MESSAGE} with URL: ${linesURIForUCM}`, loggerContext);\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${linesURIForUCM}`,\n method: HTTP_METHODS.GET,\n });\n\n const ucmLineDetails: UCMLinesResponse = {\n statusCode: Number(response.statusCode),\n data: {\n lines: response.body as UCMLinesApiResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Line details fetched successfully`, loggerContext);\n\n return ucmLineDetails;\n } catch (err: unknown) {\n const extendedError = new Error(`Failed to fetch UCM lines data: ${err}`) as ExtendedError;\n log.error(extendedError, {file: CALL_HISTORY_FILE, method: METHODS.FETCH_UCM_LINES_DATA});\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Function to delete the call history records using sessionId and endTime.\n * @param deleteSessionIds - An array of objects containing endTime and sessionId of the call history records\n * @returns {Promise} Resolves to an object of type {@link DeleteCallHistoryRecordsResponse}.Response details with success or error status.\n */\n public async deleteCallHistoryRecords(\n deleteSessionIds: EndTimeSessionId[]\n ): Promise<DeleteCallHistoryRecordsResponse> {\n const loggerContext = {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n };\n\n // Collect all sessions with invalid dates (endTime) in an array\n const invalidSessions = deleteSessionIds.filter((session) =>\n Number.isNaN(new Date(session.endTime).getTime())\n );\n\n log.info(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(deleteSessionIds)}`,\n loggerContext\n );\n\n if (invalidSessions.length > 0) {\n // If there are invalid sessions, return an error with details\n const invalidSessionIds = invalidSessions.map((session) => session.sessionId).join(', ');\n log.info(\n `The provided date is malformed or invalid for session IDs: ${invalidSessionIds}`,\n loggerContext\n );\n\n return {\n statusCode: 400,\n data: {\n deleteStatusMessage: SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE,\n },\n message: FAILURE_MESSAGE,\n };\n }\n\n // Convert endTime to milliseconds for each sessionId\n const santizedSessionIds: SanitizedEndTimeAndSessionId[] = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n const deleteRequestBody = {\n deleteSessionIds: santizedSessionIds,\n };\n\n try {\n const deleteCallHistoryRecordContentUrl = `${this.janusUrl}/${HISTORY}/${USER_SESSIONS}/${DELETE_CALL_HISTORY_RECORDS_ENDPOINT}`;\n // Make a POST request to delete call history records\n const response = await fetch(deleteCallHistoryRecordContentUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await this.webex.credentials.getUserToken(),\n },\n body: JSON.stringify(deleteRequestBody),\n });\n if (!response.ok) {\n throw new Error(`${response.status}`);\n }\n\n const data: DeleteCallHistoryRecordsResponse = await response.json();\n log.log(\n `Successfully deleted ${santizedSessionIds?.length} call history records`,\n loggerContext\n );\n const responseDetails: DeleteCallHistoryRecordsResponse = {\n statusCode: data.statusCode as number,\n data: {\n deleteStatusMessage: SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE,\n },\n message: SUCCESS_MESSAGE,\n };\n\n return responseDetails;\n } catch (err: unknown) {\n const extendedError = new Error(\n `Failed to delete call history records: ${err}`\n ) as ExtendedError;\n log.error(extendedError, {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n });\n await uploadLogs();\n\n // Catch the 401 error from try block, return the error object to user\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n handleSessionEvents = async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n this.emit(COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO, event as CallSessionEvent);\n }\n };\n\n handleUserReadSessionEvents = async (event?: CallSessionViewedEvent) => {\n if (event && event.data.userReadSessions.userReadSessions) {\n this.emit(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS,\n event as CallSessionViewedEvent\n );\n }\n };\n\n handleUserSessionsDeletedEvents = async (event?: CallSessionDeletedEvent) => {\n if (event && event.data.deletedSessions) {\n this.emit(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED,\n event as CallSessionDeletedEvent\n );\n }\n };\n\n /**\n *\n */\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n this.handleSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY,\n this.handleSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionViewedEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED,\n this.handleUserReadSessionEvents\n );\n this.sdkConnector.registerListener<CallSessionDeletedEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED,\n this.handleUserSessionsDeletedEvents\n );\n }\n}\n/**\n * Creates a `CallHistory` client instance for accessing Call History APIs.\n *\n * @param {WebexSDK} webex - `Webex SDK` instance.\n * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.\n */\nexport const createCallHistoryClient = (webex: WebexSDK, logger: LoggerInterface): ICallHistory =>\n new CallHistory(webex, logger);\n"],"mappings":"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"}
|