@webex/calling 3.9.0 → 3.10.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallHistory/CallHistory.js +43 -43
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +157 -152
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
- package/dist/CallHistory/constants.js.map +1 -1
- package/dist/CallHistory/types.js.map +1 -1
- package/dist/CallSettings/CallSettings.js +8 -8
- package/dist/CallSettings/CallSettings.js.map +1 -1
- package/dist/CallSettings/CallSettings.test.js +1 -1
- package/dist/CallSettings/CallSettings.test.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +12 -11
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +11 -11
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +53 -52
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +112 -110
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/constants.js.map +1 -1
- package/dist/CallSettings/testFixtures.js.map +1 -1
- package/dist/CallSettings/types.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +458 -203
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +458 -315
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/callRecordFixtures.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.js +2 -2
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.test.js +8 -7
- package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
- package/dist/CallingClient/calling/call.js +405 -372
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +411 -410
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +3 -4
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +68 -69
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/calling/index.js.map +1 -1
- package/dist/CallingClient/calling/types.js.map +1 -1
- package/dist/CallingClient/callingClientFixtures.js.map +1 -1
- package/dist/CallingClient/constants.js +9 -6
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +10 -11
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +10 -9
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/line/types.js.map +1 -1
- package/dist/CallingClient/registration/index.js.map +1 -1
- package/dist/CallingClient/registration/register.js +285 -205
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +251 -180
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.js +25 -10
- package/dist/CallingClient/registration/webWorker.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.test.js +85 -38
- package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
- package/dist/CallingClient/types.js.map +1 -1
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
- package/dist/Contacts/ContactsClient.js +244 -247
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +93 -93
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Contacts/constants.js +2 -2
- package/dist/Contacts/constants.js.map +1 -1
- package/dist/Contacts/contactFixtures.js.map +1 -1
- package/dist/Contacts/types.js.map +1 -1
- package/dist/Errors/catalog/CallError.js +2 -2
- package/dist/Errors/catalog/CallError.js.map +1 -1
- package/dist/Errors/catalog/CallingDeviceError.js +2 -2
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
- package/dist/Errors/catalog/ExtendedError.js +3 -3
- package/dist/Errors/catalog/ExtendedError.js.map +1 -1
- package/dist/Errors/catalog/LineError.js +2 -2
- package/dist/Errors/catalog/LineError.js.map +1 -1
- package/dist/Errors/index.js.map +1 -1
- package/dist/Errors/types.js.map +1 -1
- package/dist/Events/impl/index.js +3 -3
- package/dist/Events/impl/index.js.map +1 -1
- package/dist/Events/types.js.map +1 -1
- package/dist/Logger/index.js +3 -3
- package/dist/Logger/index.js.map +1 -1
- package/dist/Logger/index.test.js +1 -1
- package/dist/Logger/index.test.js.map +1 -1
- package/dist/Logger/types.js.map +1 -1
- package/dist/Metrics/index.js +221 -104
- package/dist/Metrics/index.js.map +1 -1
- package/dist/Metrics/index.test.js +112 -23
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/Metrics/types.js +15 -1
- package/dist/Metrics/types.js.map +1 -1
- package/dist/SDKConnector/index.js +0 -1
- package/dist/SDKConnector/index.js.map +1 -1
- package/dist/SDKConnector/index.test.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/SDKConnector/utils.js.map +1 -1
- package/dist/SDKConnector/utils.test.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +55 -61
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +129 -122
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +53 -50
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +73 -74
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +89 -113
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/Voicemail.test.js +2 -2
- package/dist/Voicemail/Voicemail.test.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +87 -92
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +228 -203
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/constants.js.map +1 -1
- package/dist/Voicemail/types.js.map +1 -1
- package/dist/Voicemail/voicemailFixture.js.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/common/Utils.js +85 -66
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +113 -123
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/index.js.map +1 -1
- package/dist/common/testUtil.js +1 -1
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +17 -8
- package/dist/module/CallSettings/UcmBackendConnector.js +2 -2
- package/dist/module/CallSettings/WxCallBackendConnector.js +14 -14
- package/dist/module/CallingClient/CallingClient.js +176 -36
- package/dist/module/CallingClient/calling/call.js +91 -61
- package/dist/module/CallingClient/constants.js +8 -4
- package/dist/module/CallingClient/line/index.js +3 -3
- package/dist/module/CallingClient/registration/register.js +37 -13
- package/dist/module/CallingClient/registration/webWorker.js +17 -3
- package/dist/module/CallingClient/registration/webWorkerStr.js +19 -3
- package/dist/module/CallingClient/windowsChromiumIceWarmupUtils.js +59 -0
- package/dist/module/Contacts/ContactsClient.js +33 -37
- package/dist/module/Contacts/constants.js +1 -1
- package/dist/module/Events/impl/index.js +1 -1
- package/dist/module/Logger/index.js +2 -2
- package/dist/module/Metrics/index.js +142 -55
- package/dist/module/Metrics/types.js +14 -0
- package/dist/module/Voicemail/BroadworksBackendConnector.js +10 -17
- package/dist/module/Voicemail/UcmBackendConnector.js +11 -10
- package/dist/module/Voicemail/Voicemail.js +42 -68
- package/dist/module/Voicemail/WxCallBackendConnector.js +22 -28
- package/dist/module/common/Utils.js +29 -12
- package/dist/types/CallHistory/CallHistory.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/CallingClient/CallingClient.d.ts +12 -1
- 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/types.d.ts +2 -1
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +8 -4
- 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 +1 -0
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts +2 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
- package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts +5 -0
- package/dist/types/CallingClient/windowsChromiumIceWarmupUtils.d.ts.map +1 -0
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/constants.d.ts +1 -1
- package/dist/types/Contacts/constants.d.ts.map +1 -1
- package/dist/types/Logger/index.d.ts +1 -2
- package/dist/types/Logger/index.d.ts.map +1 -1
- package/dist/types/Metrics/index.d.ts.map +1 -1
- package/dist/types/Metrics/types.d.ts +18 -3
- package/dist/types/Metrics/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.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +1 -0
- package/dist/types/common/types.d.ts.map +1 -1
- package/package.json +10 -8
|
@@ -34,8 +34,8 @@ var _types2 = require("../Events/types");
|
|
|
34
34
|
var _impl = require("../Events/impl");
|
|
35
35
|
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; }
|
|
36
36
|
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; }
|
|
37
|
-
function _createSuper(
|
|
38
|
-
function _isNativeReflectConstruct() {
|
|
37
|
+
function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = _Reflect$construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
|
|
38
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable dot-notation */ /* eslint-disable no-underscore-dangle */
|
|
39
39
|
/**
|
|
40
40
|
* `CallHistory` module is designed to facilitate the retrieval of Call History Records by providing a set of APIs.
|
|
41
41
|
*
|
|
@@ -66,7 +66,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
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 () {
|
|
69
|
-
var _ref = (0, _asyncToGenerator2.default)(
|
|
69
|
+
var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(event) {
|
|
70
70
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
71
71
|
while (1) switch (_context.prev = _context.next) {
|
|
72
72
|
case 0:
|
|
@@ -84,7 +84,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
84
84
|
};
|
|
85
85
|
}());
|
|
86
86
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleUserReadSessionEvents", /*#__PURE__*/function () {
|
|
87
|
-
var _ref2 = (0, _asyncToGenerator2.default)(
|
|
87
|
+
var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(event) {
|
|
88
88
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
89
89
|
while (1) switch (_context2.prev = _context2.next) {
|
|
90
90
|
case 0:
|
|
@@ -102,7 +102,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
102
102
|
};
|
|
103
103
|
}());
|
|
104
104
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleUserSessionsDeletedEvents", /*#__PURE__*/function () {
|
|
105
|
-
var _ref3 = (0, _asyncToGenerator2.default)(
|
|
105
|
+
var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(event) {
|
|
106
106
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
107
107
|
while (1) switch (_context3.prev = _context3.next) {
|
|
108
108
|
case 0:
|
|
@@ -140,7 +140,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
140
140
|
(0, _createClass2.default)(CallHistory, [{
|
|
141
141
|
key: "getCallHistoryData",
|
|
142
142
|
value: (function () {
|
|
143
|
-
var _getCallHistoryData = (0, _asyncToGenerator2.default)(
|
|
143
|
+
var _getCallHistoryData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
144
144
|
var days,
|
|
145
145
|
limit,
|
|
146
146
|
sort,
|
|
@@ -149,6 +149,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
149
149
|
sortByParam,
|
|
150
150
|
sortParam,
|
|
151
151
|
url,
|
|
152
|
+
_janusResponse$header,
|
|
152
153
|
janusResponse,
|
|
153
154
|
callingBackend,
|
|
154
155
|
hasCucmDN,
|
|
@@ -156,7 +157,6 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
156
157
|
ucmLinesResponse,
|
|
157
158
|
ucmLinesData,
|
|
158
159
|
responseDetails,
|
|
159
|
-
extendedError,
|
|
160
160
|
errorInfo,
|
|
161
161
|
errorStatus,
|
|
162
162
|
_args4 = arguments;
|
|
@@ -189,6 +189,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
189
189
|
});
|
|
190
190
|
case 16:
|
|
191
191
|
janusResponse = _context4.sent;
|
|
192
|
+
_Logger.default.log("Response trackingId: ".concat(janusResponse === null || janusResponse === void 0 ? void 0 : (_janusResponse$header = janusResponse.headers) === null || _janusResponse$header === void 0 ? void 0 : _janusResponse$header.trackingid), this.loggerContext);
|
|
192
193
|
this.userSessions = janusResponse.body;
|
|
193
194
|
if (sortByParam === _types.SORT_BY.START_TIME) {
|
|
194
195
|
if (sortParam === _types.SORT.DESC) {
|
|
@@ -204,11 +205,11 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
204
205
|
// Check the calling backend
|
|
205
206
|
callingBackend = (0, _Utils.getCallingBackEnd)(this.webex);
|
|
206
207
|
if (!(callingBackend === _types.CALLING_BACKEND.UCM)) {
|
|
207
|
-
_context4.next =
|
|
208
|
+
_context4.next = 29;
|
|
208
209
|
break;
|
|
209
210
|
}
|
|
210
211
|
if (!(this.userSessions[_constants2.USER_SESSIONS] && this.userSessions[_constants2.USER_SESSIONS].length > 0)) {
|
|
211
|
-
_context4.next =
|
|
212
|
+
_context4.next = 29;
|
|
212
213
|
break;
|
|
213
214
|
}
|
|
214
215
|
// Check if cucmDN exists and is valid in any of the userSessions
|
|
@@ -216,12 +217,12 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
216
217
|
return session.self.cucmDN && session.self.cucmDN.length > 0;
|
|
217
218
|
}); // If any user session has cucmDN, proceed to fetch line data
|
|
218
219
|
if (!hasCucmDN) {
|
|
219
|
-
_context4.next =
|
|
220
|
+
_context4.next = 29;
|
|
220
221
|
break;
|
|
221
222
|
}
|
|
222
|
-
_context4.next =
|
|
223
|
+
_context4.next = 27;
|
|
223
224
|
return this.fetchUCMLinesData();
|
|
224
|
-
case
|
|
225
|
+
case 27:
|
|
225
226
|
ucmLinesResponse = _context4.sent;
|
|
226
227
|
// Check if the Lines API response was successful
|
|
227
228
|
if (ucmLinesResponse.statusCode === 200 && (_ucmLinesResponse$dat = ucmLinesResponse.data.lines) !== null && _ucmLinesResponse$dat !== void 0 && _ucmLinesResponse$dat.devices) {
|
|
@@ -239,7 +240,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
239
240
|
}
|
|
240
241
|
});
|
|
241
242
|
}
|
|
242
|
-
case
|
|
243
|
+
case 29:
|
|
243
244
|
responseDetails = {
|
|
244
245
|
statusCode: this.userSessions[_constants2.STATUS_CODE],
|
|
245
246
|
data: {
|
|
@@ -249,11 +250,10 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
249
250
|
};
|
|
250
251
|
_Logger.default.log("Successfully retrieved call history data with ".concat(this.userSessions[_constants2.USER_SESSIONS].length, " records"), this.loggerContext);
|
|
251
252
|
return _context4.abrupt("return", responseDetails);
|
|
252
|
-
case
|
|
253
|
-
_context4.prev =
|
|
253
|
+
case 34:
|
|
254
|
+
_context4.prev = 34;
|
|
254
255
|
_context4.t0 = _context4["catch"](13);
|
|
255
|
-
|
|
256
|
-
_Logger.default.error(extendedError, {
|
|
256
|
+
_Logger.default.error("Failed to get call history: ".concat((0, _stringify.default)(_context4.t0)), {
|
|
257
257
|
file: _constants.CALL_HISTORY_FILE,
|
|
258
258
|
method: _constants.METHODS.GET_CALL_HISTORY_DATA
|
|
259
259
|
});
|
|
@@ -267,7 +267,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
267
267
|
case "end":
|
|
268
268
|
return _context4.stop();
|
|
269
269
|
}
|
|
270
|
-
}, _callee4, this, [[13,
|
|
270
|
+
}, _callee4, this, [[13, 34]]);
|
|
271
271
|
}));
|
|
272
272
|
function getCallHistoryData() {
|
|
273
273
|
return _getCallHistoryData.apply(this, arguments);
|
|
@@ -283,8 +283,8 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
283
283
|
}, {
|
|
284
284
|
key: "updateMissedCalls",
|
|
285
285
|
value: (function () {
|
|
286
|
-
var _updateMissedCalls = (0, _asyncToGenerator2.default)(
|
|
287
|
-
var loggerContext, santizedSessionIds, requestBody, updateMissedCallContentUrl, response, data, responseDetails,
|
|
286
|
+
var _updateMissedCalls = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(endTimeSessionIds) {
|
|
287
|
+
var loggerContext, santizedSessionIds, requestBody, _response$headers, updateMissedCallContentUrl, response, data, responseDetails, errorInfo, errorStatus;
|
|
288
288
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
289
289
|
while (1) switch (_context5.prev = _context5.next) {
|
|
290
290
|
case 0:
|
|
@@ -329,9 +329,10 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
329
329
|
}
|
|
330
330
|
throw new Error("".concat(response.status));
|
|
331
331
|
case 22:
|
|
332
|
-
|
|
332
|
+
_Logger.default.log("Response trackingId: ".concat((_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.get('trackingid')), loggerContext);
|
|
333
|
+
_context5.next = 25;
|
|
333
334
|
return response.json();
|
|
334
|
-
case
|
|
335
|
+
case 25:
|
|
335
336
|
data = _context5.sent;
|
|
336
337
|
_Logger.default.log("Missed calls are successfully read by the user", loggerContext);
|
|
337
338
|
responseDetails = {
|
|
@@ -343,11 +344,10 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
343
344
|
};
|
|
344
345
|
_Logger.default.log("Successfully updated ".concat(santizedSessionIds === null || santizedSessionIds === void 0 ? void 0 : santizedSessionIds.length, " missed calls"), loggerContext);
|
|
345
346
|
return _context5.abrupt("return", responseDetails);
|
|
346
|
-
case
|
|
347
|
-
_context5.prev =
|
|
347
|
+
case 32:
|
|
348
|
+
_context5.prev = 32;
|
|
348
349
|
_context5.t9 = _context5["catch"](4);
|
|
349
|
-
|
|
350
|
-
_Logger.default.error(extendedError, {
|
|
350
|
+
_Logger.default.error("Failed to update missed calls: ".concat((0, _stringify.default)(_context5.t9)), {
|
|
351
351
|
file: _constants.CALL_HISTORY_FILE,
|
|
352
352
|
method: _constants.METHODS.UPDATE_MISSED_CALLS
|
|
353
353
|
});
|
|
@@ -364,7 +364,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
364
364
|
case "end":
|
|
365
365
|
return _context5.stop();
|
|
366
366
|
}
|
|
367
|
-
}, _callee5, this, [[4,
|
|
367
|
+
}, _callee5, this, [[4, 32]]);
|
|
368
368
|
}));
|
|
369
369
|
function updateMissedCalls(_x4) {
|
|
370
370
|
return _updateMissedCalls.apply(this, arguments);
|
|
@@ -379,8 +379,8 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
379
379
|
}, {
|
|
380
380
|
key: "fetchUCMLinesData",
|
|
381
381
|
value: (function () {
|
|
382
|
-
var _fetchUCMLinesData = (0, _asyncToGenerator2.default)(
|
|
383
|
-
var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, response, ucmLineDetails,
|
|
382
|
+
var _fetchUCMLinesData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
383
|
+
var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, _response$headers2, response, ucmLineDetails, errorInfo, errorStatus;
|
|
384
384
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
385
385
|
while (1) switch (_context6.prev = _context6.next) {
|
|
386
386
|
case 0:
|
|
@@ -401,6 +401,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
401
401
|
});
|
|
402
402
|
case 9:
|
|
403
403
|
response = _context6.sent;
|
|
404
|
+
_Logger.default.log("Response trackingId: ".concat(response === null || response === void 0 ? void 0 : (_response$headers2 = response.headers) === null || _response$headers2 === void 0 ? void 0 : _response$headers2.trackingid), loggerContext);
|
|
404
405
|
ucmLineDetails = {
|
|
405
406
|
statusCode: Number(response.statusCode),
|
|
406
407
|
data: {
|
|
@@ -410,11 +411,10 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
410
411
|
};
|
|
411
412
|
_Logger.default.log("Line details fetched successfully", loggerContext);
|
|
412
413
|
return _context6.abrupt("return", ucmLineDetails);
|
|
413
|
-
case
|
|
414
|
-
_context6.prev =
|
|
414
|
+
case 16:
|
|
415
|
+
_context6.prev = 16;
|
|
415
416
|
_context6.t0 = _context6["catch"](6);
|
|
416
|
-
|
|
417
|
-
_Logger.default.error(extendedError, {
|
|
417
|
+
_Logger.default.error("Failed to fetch UCM lines data: ".concat((0, _stringify.default)(_context6.t0)), {
|
|
418
418
|
file: _constants.CALL_HISTORY_FILE,
|
|
419
419
|
method: _constants.METHODS.FETCH_UCM_LINES_DATA
|
|
420
420
|
});
|
|
@@ -428,7 +428,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
428
428
|
case "end":
|
|
429
429
|
return _context6.stop();
|
|
430
430
|
}
|
|
431
|
-
}, _callee6, this, [[6,
|
|
431
|
+
}, _callee6, this, [[6, 16]]);
|
|
432
432
|
}));
|
|
433
433
|
function fetchUCMLinesData() {
|
|
434
434
|
return _fetchUCMLinesData.apply(this, arguments);
|
|
@@ -444,8 +444,8 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
444
444
|
}, {
|
|
445
445
|
key: "deleteCallHistoryRecords",
|
|
446
446
|
value: (function () {
|
|
447
|
-
var _deleteCallHistoryRecords = (0, _asyncToGenerator2.default)(
|
|
448
|
-
var loggerContext, invalidSessions, invalidSessionIds, santizedSessionIds, deleteRequestBody, deleteCallHistoryRecordContentUrl, response, data, responseDetails,
|
|
447
|
+
var _deleteCallHistoryRecords = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(deleteSessionIds) {
|
|
448
|
+
var loggerContext, invalidSessions, invalidSessionIds, santizedSessionIds, deleteRequestBody, _response$headers3, deleteCallHistoryRecordContentUrl, response, data, responseDetails, errorInfo, errorStatus;
|
|
449
449
|
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
450
450
|
while (1) switch (_context7.prev = _context7.next) {
|
|
451
451
|
case 0:
|
|
@@ -511,9 +511,10 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
511
511
|
}
|
|
512
512
|
throw new Error("".concat(response.status));
|
|
513
513
|
case 27:
|
|
514
|
-
|
|
514
|
+
_Logger.default.log("Response trackingId: ".concat((_response$headers3 = response.headers) === null || _response$headers3 === void 0 ? void 0 : _response$headers3.get('trackingid')), loggerContext);
|
|
515
|
+
_context7.next = 30;
|
|
515
516
|
return response.json();
|
|
516
|
-
case
|
|
517
|
+
case 30:
|
|
517
518
|
data = _context7.sent;
|
|
518
519
|
_Logger.default.log("Successfully deleted ".concat(santizedSessionIds === null || santizedSessionIds === void 0 ? void 0 : santizedSessionIds.length, " call history records"), loggerContext);
|
|
519
520
|
responseDetails = {
|
|
@@ -524,11 +525,10 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
524
525
|
message: _constants2.SUCCESS_MESSAGE
|
|
525
526
|
};
|
|
526
527
|
return _context7.abrupt("return", responseDetails);
|
|
527
|
-
case
|
|
528
|
-
_context7.prev =
|
|
528
|
+
case 36:
|
|
529
|
+
_context7.prev = 36;
|
|
529
530
|
_context7.t9 = _context7["catch"](9);
|
|
530
|
-
|
|
531
|
-
_Logger.default.error(extendedError, {
|
|
531
|
+
_Logger.default.error("Failed to delete call history records: ".concat((0, _stringify.default)(_context7.t9)), {
|
|
532
532
|
file: _constants.CALL_HISTORY_FILE,
|
|
533
533
|
method: _constants.METHODS.DELETE_CALL_HISTORY_RECORDS
|
|
534
534
|
});
|
|
@@ -545,7 +545,7 @@ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
|
|
|
545
545
|
case "end":
|
|
546
546
|
return _context7.stop();
|
|
547
547
|
}
|
|
548
|
-
}, _callee7, this, [[9,
|
|
548
|
+
}, _callee7, this, [[9, 36]]);
|
|
549
549
|
}));
|
|
550
550
|
function deleteCallHistoryRecords(_x5) {
|
|
551
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","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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"}
|
|
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","_isNativeReflectConstruct","_getPrototypeOf2","s","constructor","_Reflect$construct","_possibleConstructorReturn2","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$header","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","info","concat","METHOD_START_MESSAGE","loggerContext","HISTORY","USER_SESSIONS","FROM_DATE","request","uri","HTTP_METHODS","GET","service","ALLOWED_SERVICES","JANUS","sent","headers","trackingid","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","_stringify","uploadLogs","serviceErrorCodeHandler","getCallHistoryData","_updateMissedCalls","_callee5","endTimeSessionIds","santizedSessionIds","requestBody","_response$headers","updateMissedCallContentUrl","response","_callee5$","_context5","UPDATE_MISSED_CALLS","map","endTime","UPDATE_MISSED_CALLS_ENDPOINT","fetch","t1","t2","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","t8","ok","Error","status","get","json","readStatusMessage","SET_READ_STATE_SUCCESS_MESSAGE","t9","Number","updateMissedCalls","_x4","_fetchUCMLinesData","_callee6","vgEndpoint","userId","orgId","linesURIForUCM","_response$headers2","ucmLineDetails","_callee6$","_context6","FETCH_UCM_LINES_DATA","getVgActionEndpoint","VERSION_1","UNIFIED_COMMUNICATIONS","CONFIG","PEOPLE","LINES","ORG_ID","_deleteCallHistoryRecords","_callee7","deleteSessionIds","invalidSessions","invalidSessionIds","deleteRequestBody","_response$headers3","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 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 log.log(`Response trackingId: ${janusResponse?.headers?.trackingid}`, this.loggerContext);\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 log.error(`Failed to get call history: ${JSON.stringify(err)}`, {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n });\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 log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);\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 log.error(`Failed to update missed calls: ${JSON.stringify(err)}`, {\n file: CALL_HISTORY_FILE,\n method: METHODS.UPDATE_MISSED_CALLS,\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 /**\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 log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\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 log.error(`Failed to fetch UCM lines data: ${JSON.stringify(err)}`, {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n });\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\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 log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);\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 log.error(`Failed to delete call history records: ${JSON.stringify(err)}`, {\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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","ignoreList":[]}
|