@webex/calling 3.10.0-next.9 → 3.10.0-wxc-disconnect.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 +41 -42
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +5 -120
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +6 -6
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +1 -2
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +43 -38
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +1 -4
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +207 -161
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +290 -152
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +40 -37
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +264 -330
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +1 -1
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/registration/register.js +4 -5
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.js +3 -3
- package/dist/CallingClient/registration/webWorker.js.map +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +45 -39
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +3 -4
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Events/impl/index.js +1 -1
- package/dist/Events/impl/index.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/SDKConnector/types.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +54 -47
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +2 -10
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +32 -29
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +102 -77
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +59 -46
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +18 -44
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
- package/dist/common/Utils.js +2 -2
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +8 -4
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/testUtil.js +1 -2
- package/dist/common/testUtil.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +11 -20
- package/dist/module/CallSettings/UcmBackendConnector.js +2 -1
- package/dist/module/CallSettings/WxCallBackendConnector.js +15 -10
- package/dist/module/CallingClient/CallingClient.js +123 -83
- package/dist/module/CallingClient/calling/call.js +19 -13
- package/dist/module/CallingClient/registration/register.js +3 -3
- package/dist/module/CallingClient/registration/webWorker.js +2 -2
- package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
- package/dist/module/Contacts/ContactsClient.js +25 -19
- package/dist/module/Events/impl/index.js +1 -1
- package/dist/module/Logger/index.js +2 -2
- package/dist/module/Voicemail/BroadworksBackendConnector.js +18 -10
- package/dist/module/Voicemail/UcmBackendConnector.js +11 -7
- package/dist/module/Voicemail/Voicemail.js +68 -42
- package/dist/module/Voicemail/WxCallBackendConnector.js +28 -14
- package/dist/module/common/Utils.js +2 -2
- package/dist/module/common/testUtil.js +0 -1
- 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.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.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/Contacts/ContactsClient.d.ts +0 -1
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Logger/index.d.ts +2 -1
- package/dist/types/Logger/index.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +0 -10
- 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.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/testUtil.d.ts +0 -1
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -16,7 +16,6 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
|
|
|
16
16
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
17
17
|
var _entries = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/entries"));
|
|
18
18
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
19
|
-
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
20
19
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
21
20
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
|
|
22
21
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
@@ -47,7 +46,6 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
47
46
|
* @ignore
|
|
48
47
|
*/
|
|
49
48
|
function ContactsClient(webex, logger) {
|
|
50
|
-
var _this$webex$internal$;
|
|
51
49
|
(0, _classCallCheck2.default)(this, ContactsClient);
|
|
52
50
|
(0, _defineProperty2.default)(this, "sdkConnector", void 0);
|
|
53
51
|
(0, _defineProperty2.default)(this, "encryptionKeyUrl", void 0);
|
|
@@ -55,7 +53,6 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
55
53
|
(0, _defineProperty2.default)(this, "groups", void 0);
|
|
56
54
|
(0, _defineProperty2.default)(this, "contacts", void 0);
|
|
57
55
|
(0, _defineProperty2.default)(this, "defaultGroupId", void 0);
|
|
58
|
-
(0, _defineProperty2.default)(this, "contactsServiceUrl", void 0);
|
|
59
56
|
this.sdkConnector = _SDKConnector.default;
|
|
60
57
|
if (!this.sdkConnector.getWebex()) {
|
|
61
58
|
_SDKConnector.default.setWebex(webex);
|
|
@@ -65,7 +62,6 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
65
62
|
this.groups = undefined;
|
|
66
63
|
this.contacts = undefined;
|
|
67
64
|
this.defaultGroupId = '';
|
|
68
|
-
this.contactsServiceUrl = ((_this$webex$internal$ = this.webex.internal.services._serviceUrls) === null || _this$webex$internal$ === void 0 ? void 0 : _this$webex$internal$.contactsService) || this.webex.internal.services.get(this.webex.internal.services._activeServices.contactsService);
|
|
69
65
|
_Logger.default.setLogger(logger.level, _constants2.CONTACTS_CLIENT);
|
|
70
66
|
}
|
|
71
67
|
|
|
@@ -455,7 +451,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
455
451
|
value: (function () {
|
|
456
452
|
var _getContacts = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
|
|
457
453
|
var _this5 = this;
|
|
458
|
-
var loggerContext, contactList, cloudContactsMap, _response$headers, response, responseBody, contacts, groups, contactIdList, totalContacts, MAX_CONTACTS_PER_QUERY, i, contactIdListChunk, query, result, slicedCloudContactsMap, resolvedContacts, contactResponse, errorStatus;
|
|
454
|
+
var loggerContext, contactList, cloudContactsMap, _response$headers, response, responseBody, contacts, groups, contactIdList, totalContacts, MAX_CONTACTS_PER_QUERY, i, contactIdListChunk, query, result, slicedCloudContactsMap, resolvedContacts, contactResponse, errorInfo, extendedError, errorStatus;
|
|
459
455
|
return _regenerator.default.wrap(function _callee1$(_context1) {
|
|
460
456
|
while (1) switch (_context1.prev = _context1.next) {
|
|
461
457
|
case 0:
|
|
@@ -470,7 +466,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
470
466
|
_context1.next = 7;
|
|
471
467
|
return this.webex.request({
|
|
472
468
|
// eslint-disable-next-line no-underscore-dangle
|
|
473
|
-
uri: "".concat(this.
|
|
469
|
+
uri: "".concat(this.webex.internal.services._serviceUrls.contactsService, "/").concat(_constants2.ENCRYPT_FILTER, "/").concat(_constants2.USERS, "/").concat(_constants2.CONTACT_FILTER),
|
|
474
470
|
method: _types.HTTP_METHODS.GET
|
|
475
471
|
});
|
|
476
472
|
case 7:
|
|
@@ -593,13 +589,15 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
593
589
|
case 47:
|
|
594
590
|
_context1.prev = 47;
|
|
595
591
|
_context1.t1 = _context1["catch"](4);
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
592
|
+
errorInfo = _context1.t1;
|
|
593
|
+
extendedError = new Error("Error fetching contacts: ".concat(_context1.t1));
|
|
594
|
+
_Logger.default.error(extendedError, loggerContext);
|
|
595
|
+
errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
|
|
596
|
+
_context1.next = 55;
|
|
599
597
|
return (0, _Utils.uploadLogs)();
|
|
600
|
-
case
|
|
598
|
+
case 55:
|
|
601
599
|
return _context1.abrupt("return", errorStatus);
|
|
602
|
-
case
|
|
600
|
+
case 56:
|
|
603
601
|
case "end":
|
|
604
602
|
return _context1.stop();
|
|
605
603
|
}
|
|
@@ -819,7 +817,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
819
817
|
key: "createContactGroup",
|
|
820
818
|
value: (function () {
|
|
821
819
|
var _createContactGroup = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(displayName, encryptionKeyUrl, groupType) {
|
|
822
|
-
var loggerContext, encryptionKeyUrlFinal, isExistingGroup, encryptedDisplayName, groupInfo, _response$headers2, _this$groups, response, group, contactResponse, errorStatus;
|
|
820
|
+
var loggerContext, encryptionKeyUrlFinal, isExistingGroup, encryptedDisplayName, groupInfo, _response$headers2, _this$groups, response, group, contactResponse, errorInfo, extendedError, errorStatus;
|
|
823
821
|
return _regenerator.default.wrap(function _callee13$(_context13) {
|
|
824
822
|
while (1) switch (_context13.prev = _context13.next) {
|
|
825
823
|
case 0:
|
|
@@ -880,7 +878,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
880
878
|
_context13.next = 23;
|
|
881
879
|
return this.webex.request({
|
|
882
880
|
// eslint-disable-next-line no-underscore-dangle
|
|
883
|
-
uri: "".concat(this.
|
|
881
|
+
uri: "".concat(this.webex.internal.services._serviceUrls.contactsService, "/").concat(_constants2.ENCRYPT_FILTER, "/").concat(_constants2.USERS, "/").concat(_constants2.GROUP_FILTER),
|
|
884
882
|
method: _types.HTTP_METHODS.POST,
|
|
885
883
|
body: groupInfo
|
|
886
884
|
});
|
|
@@ -903,13 +901,15 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
903
901
|
case 34:
|
|
904
902
|
_context13.prev = 34;
|
|
905
903
|
_context13.t1 = _context13["catch"](20);
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
904
|
+
errorInfo = _context13.t1;
|
|
905
|
+
extendedError = new Error("Unable to create contact group: ".concat(_context13.t1));
|
|
906
|
+
_Logger.default.error(extendedError, loggerContext);
|
|
907
|
+
errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
|
|
908
|
+
_context13.next = 42;
|
|
909
909
|
return (0, _Utils.uploadLogs)();
|
|
910
|
-
case
|
|
910
|
+
case 42:
|
|
911
911
|
return _context13.abrupt("return", errorStatus);
|
|
912
|
-
case
|
|
912
|
+
case 43:
|
|
913
913
|
case "end":
|
|
914
914
|
return _context13.stop();
|
|
915
915
|
}
|
|
@@ -929,7 +929,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
929
929
|
key: "deleteContactGroup",
|
|
930
930
|
value: (function () {
|
|
931
931
|
var _deleteContactGroup = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14(groupId) {
|
|
932
|
-
var loggerContext, _response$headers3, _this$groups2, _this$groups4, response, contactResponse, groupToDelete, _this$groups3, errorStatus;
|
|
932
|
+
var loggerContext, _response$headers3, _this$groups2, _this$groups4, response, contactResponse, groupToDelete, _this$groups3, errorInfo, extendedError, errorStatus;
|
|
933
933
|
return _regenerator.default.wrap(function _callee14$(_context14) {
|
|
934
934
|
while (1) switch (_context14.prev = _context14.next) {
|
|
935
935
|
case 0:
|
|
@@ -943,7 +943,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
943
943
|
_context14.next = 6;
|
|
944
944
|
return this.webex.request({
|
|
945
945
|
// eslint-disable-next-line no-underscore-dangle
|
|
946
|
-
uri: "".concat(this.
|
|
946
|
+
uri: "".concat(this.webex.internal.services._serviceUrls.contactsService, "/").concat(_constants2.ENCRYPT_FILTER, "/").concat(_constants2.USERS, "/").concat(_constants2.GROUP_FILTER, "/").concat(groupId),
|
|
947
947
|
method: _types.HTTP_METHODS.DELETE
|
|
948
948
|
});
|
|
949
949
|
case 6:
|
|
@@ -968,13 +968,15 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
968
968
|
case 16:
|
|
969
969
|
_context14.prev = 16;
|
|
970
970
|
_context14.t0 = _context14["catch"](2);
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
971
|
+
errorInfo = _context14.t0;
|
|
972
|
+
extendedError = new Error("Unable to delete contact group ".concat(groupId, ": ").concat(_context14.t0));
|
|
973
|
+
_Logger.default.error(extendedError, loggerContext);
|
|
974
|
+
errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
|
|
975
|
+
_context14.next = 24;
|
|
974
976
|
return (0, _Utils.uploadLogs)();
|
|
975
|
-
case
|
|
977
|
+
case 24:
|
|
976
978
|
return _context14.abrupt("return", errorStatus);
|
|
977
|
-
case
|
|
979
|
+
case 25:
|
|
978
980
|
case "end":
|
|
979
981
|
return _context14.stop();
|
|
980
982
|
}
|
|
@@ -994,7 +996,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
994
996
|
key: "createContact",
|
|
995
997
|
value: (function () {
|
|
996
998
|
var _createContact = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15(contactInfo) {
|
|
997
|
-
var loggerContext, _response$headers4, contact, defaultGroupId, requestBody, encryptedContact, _encryptedContact, response, newContact, contactResponse, query, res, resolvedContact, _this$contacts, _this$contacts2, errorStatus;
|
|
999
|
+
var loggerContext, _response$headers4, contact, defaultGroupId, requestBody, encryptedContact, _encryptedContact, response, newContact, contactResponse, query, res, resolvedContact, _this$contacts, _this$contacts2, errorInfo, extendedError, errorStatus;
|
|
998
1000
|
return _regenerator.default.wrap(function _callee15$(_context15) {
|
|
999
1001
|
while (1) switch (_context15.prev = _context15.next) {
|
|
1000
1002
|
case 0:
|
|
@@ -1067,7 +1069,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
1067
1069
|
_context15.next = 33;
|
|
1068
1070
|
return this.webex.request({
|
|
1069
1071
|
// eslint-disable-next-line no-underscore-dangle
|
|
1070
|
-
uri: "".concat(this.
|
|
1072
|
+
uri: "".concat(this.webex.internal.services._serviceUrls.contactsService, "/").concat(_constants2.ENCRYPT_FILTER, "/").concat(_constants2.USERS, "/").concat(_constants2.CONTACT_FILTER),
|
|
1071
1073
|
method: _types.HTTP_METHODS.POST,
|
|
1072
1074
|
body: requestBody
|
|
1073
1075
|
});
|
|
@@ -1107,13 +1109,15 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
1107
1109
|
case 53:
|
|
1108
1110
|
_context15.prev = 53;
|
|
1109
1111
|
_context15.t1 = _context15["catch"](2);
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1112
|
+
errorInfo = _context15.t1;
|
|
1113
|
+
extendedError = new Error("Failed to create contact: ".concat(_context15.t1));
|
|
1114
|
+
_Logger.default.error(extendedError, loggerContext);
|
|
1115
|
+
errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
|
|
1116
|
+
_context15.next = 61;
|
|
1113
1117
|
return (0, _Utils.uploadLogs)();
|
|
1114
|
-
case
|
|
1118
|
+
case 61:
|
|
1115
1119
|
return _context15.abrupt("return", errorStatus);
|
|
1116
|
-
case
|
|
1120
|
+
case 62:
|
|
1117
1121
|
case "end":
|
|
1118
1122
|
return _context15.stop();
|
|
1119
1123
|
}
|
|
@@ -1133,7 +1137,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
1133
1137
|
key: "deleteContact",
|
|
1134
1138
|
value: (function () {
|
|
1135
1139
|
var _deleteContact = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee16(contactId) {
|
|
1136
|
-
var loggerContext, _this$contacts3, response, contactResponse, contactToDelete, _this$contacts4, errorStatus;
|
|
1140
|
+
var loggerContext, _this$contacts3, response, contactResponse, contactToDelete, _this$contacts4, errorInfo, extendedError, errorStatus;
|
|
1137
1141
|
return _regenerator.default.wrap(function _callee16$(_context16) {
|
|
1138
1142
|
while (1) switch (_context16.prev = _context16.next) {
|
|
1139
1143
|
case 0:
|
|
@@ -1147,7 +1151,7 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
1147
1151
|
_context16.next = 6;
|
|
1148
1152
|
return this.webex.request({
|
|
1149
1153
|
// eslint-disable-next-line no-underscore-dangle
|
|
1150
|
-
uri: "".concat(this.
|
|
1154
|
+
uri: "".concat(this.webex.internal.services._serviceUrls.contactsService, "/").concat(_constants2.ENCRYPT_FILTER, "/").concat(_constants2.USERS, "/").concat(_constants2.CONTACT_FILTER, "/").concat(contactId),
|
|
1151
1155
|
method: _types.HTTP_METHODS.DELETE
|
|
1152
1156
|
});
|
|
1153
1157
|
case 6:
|
|
@@ -1168,13 +1172,15 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
1168
1172
|
case 14:
|
|
1169
1173
|
_context16.prev = 14;
|
|
1170
1174
|
_context16.t0 = _context16["catch"](2);
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1175
|
+
errorInfo = _context16.t0;
|
|
1176
|
+
extendedError = new Error("Unable to delete contact ".concat(contactId, ": ").concat(_context16.t0));
|
|
1177
|
+
_Logger.default.error(extendedError, loggerContext);
|
|
1178
|
+
errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
|
|
1179
|
+
_context16.next = 22;
|
|
1174
1180
|
return (0, _Utils.uploadLogs)();
|
|
1175
|
-
case
|
|
1181
|
+
case 22:
|
|
1176
1182
|
return _context16.abrupt("return", errorStatus);
|
|
1177
|
-
case
|
|
1183
|
+
case 23:
|
|
1178
1184
|
case "end":
|
|
1179
1185
|
return _context16.stop();
|
|
1180
1186
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","_types","_SDKConnector","_interopRequireDefault","_Logger","_constants2","_types2","_Utils","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ContactsClient","exports","webex","logger","_this$webex$internal$","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","encryptionKeyUrl","groups","undefined","contacts","defaultGroupId","contactsServiceUrl","internal","services","_serviceUrls","contactsService","get","_activeServices","log","setLogger","level","CONTACTS_CLIENT","_createClass2","key","value","_decryptContactDetail","_asyncToGenerator2","_regenerator","mark","_callee","contactDetails","_this","decryptedContactDetail","decryptedValues","wrap","_callee$","_context","prev","next","_toConsumableArray2","_promise","all","map","detail","encryption","decryptText","sent","decryptedValue","index","abrupt","stop","decryptContactDetail","_x","_x2","_encryptContactDetail","_callee2","_this2","encryptedContactDetail","encryptedValues","_callee2$","_context2","encryptText","encryptedValue","encryptContactDetail","_x3","_x4","_encryptContact","_callee5","contact","_this3","encryptedContact","encryptionPromises","encryptedFieldsList","_callee5$","_context5","_values","encryptedFields","_ref","_callee4","field","plaintextAddressInfo","encryptedAddressInfo","encryptedAddressInfoPromises","plainTextDetails","encryptedDetails","_callee4$","_context4","t0","ADDRESS_INFO","EMAILS","PHONE_NUMBERS","SIP_ADDRESSES","addressInfo","_entries","_ref3","_callee3","_ref2","_ref4","_callee3$","_context3","_slicedToArray2","t1","_x7","t2","fromEntries","call","includes","_x6","_ref5","_ref6","encryptContact","_x5","_decryptContact","_callee8","_this4","decryptedContact","decryptionPromises","decryptedFieldsList","_callee8$","_context8","_ref7","_callee7","decryptedAddressInfo","decryptedAddressInfoPromises","decryptedDetails","_callee7$","_context7","_ref9","_callee6","_ref8","_ref0","_callee6$","_context6","_x0","_x9","_ref1","_ref10","decryptContact","_x8","resolveCloudContacts","contactsDataMap","inputList","loggerContext","file","method","finalContactList","resolvedList","Resources","item","id","isResolved","some","listItem","contactId","resolved","n","_filteredContact$name","_filteredContact$name2","_filteredContact$SCIM","_filteredContact$SCIM2","_filteredContact$SCIM3","filteredContact","displayName","emails","phoneNumbers","photos","sipAddresses","SCIM_WEBEXIDENTITY_USER","firstName","name","givenName","lastName","familyName","manager","SCIM_ENTERPRISE_USER","department","avatarURL","_contactsDataMap$inpu","contactType","avatarUrlDomain","ownerId","cloudContact","error","warn","_getContacts","_callee1","_this5","contactList","cloudContactsMap","_response$headers","response","responseBody","contactIdList","totalContacts","MAX_CONTACTS_PER_QUERY","i","contactIdListChunk","query","result","slicedCloudContactsMap","resolvedContacts","contactResponse","errorStatus","_callee1$","_context1","METHODS","GET_CONTACTS","info","METHOD_START_MESSAGE","request","uri","concat","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","statusCode","headers","trackingid","body","Error","_ref11","_callee9","_callee9$","_context9","ContactType","CUSTOM","CLOUD","_x1","_keys","slice","SCIM_ID_FILTER","join","OR","scimQuery","_ref12","_callee0","group","idx","_callee0$","_context0","_x10","_x11","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","_stringify","serviceErrorCodeHandler","uploadLogs","getContacts","_createNewEncryptionKeyUrl","_callee10","unboundedKeyUri","unboundedKeys","_callee10$","_context10","CREATE_NEW_ENCRYPTION_KEY_URL","kms","createUnboundKeys","count","createResource","keyUris","createNewEncryptionKeyUrl","_fetchEncryptionKeyUrl","_callee11","_response$data$group","_response$data$group2","_callee11$","_context11","FETCH_ENCRYPTION_KEY_URL","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee12","_callee12$","_context12","FETCH_DEFAULT_GROUP","fetchDefaultGroup","_createContactGroup","_callee13","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_response$headers2","_this$groups","_callee13$","_context13","CREATE_CONTACT_GROUP","find","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x12","_x13","_x14","_deleteContactGroup","_callee14","_response$headers3","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee14$","_context14","DELETE_CONTACT_GROUP","DELETE","findIndex","splice","deleteContactGroup","_x15","_createContact","_callee15","contactInfo","_response$headers4","requestBody","_encryptedContact","newContact","res","resolvedContact","_this$contacts","_this$contacts2","_callee15$","_context15","CREATE_CONTACT","createContact","_x16","_deleteContact","_callee16","_this$contacts3","contactToDelete","_this$contacts4","_callee16$","_context16","DELETE_CONTACT","deleteContact","_x17","getSDKConnector","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport {\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n SCIM_ENTERPRISE_USER,\n SCIM_WEBEXIDENTITY_USER,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload, ContactDetail, SCIMListResponse} from '../common/types';\nimport {LoggerInterface} from '../Voicemail/types';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport SDKConnector from '../SDKConnector';\n\nimport log from '../Logger';\nimport {\n CONTACTS_CLIENT,\n CONTACTS_SCHEMA,\n CONTACT_FILTER,\n DEFAULT_GROUP_NAME,\n ENCRYPT_FILTER,\n GROUP_FILTER,\n METHODS,\n OR,\n SCIM_ID_FILTER,\n USERS,\n encryptedFields,\n} from './constants';\nimport {\n Contact,\n ContactIdContactInfo,\n ContactList,\n ContactResponse,\n ContactType,\n IContacts,\n ContactGroup,\n GroupType,\n} from './types';\n\nimport {scimQuery, serviceErrorCodeHandler, uploadLogs} from '../common/Utils';\n\n/**\n * `ContactsClient` module is designed to offer a set of APIs for retrieving and updating contacts and groups from the contacts-service.\n *\n * This code snippet demonstrates how to create an instance of `ContactClient` using webex and logger.\n *\n * Example\n * ```javascript\n * const contactClient = createContactsClient(webex, logger);\n * ```\n */\nexport class ContactsClient implements IContacts {\n private sdkConnector: ISDKConnector;\n\n private encryptionKeyUrl: string;\n\n private webex: WebexSDK;\n\n private groups: ContactGroup[] | undefined;\n\n private contacts: Contact[] | undefined;\n\n private defaultGroupId: string;\n\n private contactsServiceUrl: string;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n\n this.encryptionKeyUrl = '';\n this.groups = undefined;\n this.contacts = undefined;\n this.defaultGroupId = '';\n this.contactsServiceUrl =\n this.webex.internal.services._serviceUrls?.contactsService ||\n this.webex.internal.services.get(\n this.webex.internal.services._activeServices.contactsService\n );\n log.setLogger(logger.level, CONTACTS_CLIENT);\n }\n\n /**\n * Decrypt emails, phoneNumbers, sipAddresses.\n */\n private async decryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const decryptedContactDetail = [...contactDetails];\n\n const decryptedValues = await Promise.all(\n decryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.decryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n decryptedValues.forEach((decryptedValue, index) => {\n decryptedContactDetail[index].value = decryptedValue;\n });\n\n return decryptedContactDetail;\n }\n\n /**\n * Encrypt emails, phoneNumbers, sipAddresses.\n *\n */\n private async encryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const encryptedContactDetail = [...contactDetails];\n\n const encryptedValues = await Promise.all(\n encryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.encryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n encryptedValues.forEach((encryptedValue, index) => {\n encryptedContactDetail[index].value = encryptedValue;\n });\n\n return encryptedContactDetail;\n }\n\n /**\n * Encrypts a given contact.\n */\n private async encryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const encryptedContact: Contact = {...contact};\n\n const encryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = encryptedContact.addressInfo;\n let encryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const encryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.encryptText(encryptionKeyUrl, value),\n ]\n );\n\n encryptedAddressInfo = Object.fromEntries(\n await Promise.all(encryptedAddressInfoPromises)\n );\n }\n\n return [field, encryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = encryptedContact[field];\n let encryptedDetails;\n\n if (plainTextDetails) {\n encryptedDetails = await this.encryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, encryptedDetails];\n }\n default: {\n let encryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && encryptedContact[field]) {\n encryptedValue = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrl,\n encryptedContact[field]\n );\n }\n\n return [field, encryptedValue];\n }\n }\n });\n\n const encryptedFieldsList = await Promise.all(encryptionPromises);\n\n encryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n encryptedContact[field] = value;\n }\n });\n\n return encryptedContact;\n }\n\n /**\n * Decrypts a given contact.\n */\n private async decryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const decryptedContact: Contact = {...contact};\n\n const decryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = decryptedContact.addressInfo;\n let decryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const decryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.decryptText(encryptionKeyUrl, value),\n ]\n );\n\n decryptedAddressInfo = Object.fromEntries(\n await Promise.all(decryptedAddressInfoPromises)\n );\n }\n\n return [field, decryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = decryptedContact[field];\n let decryptedDetails;\n\n if (plainTextDetails) {\n decryptedDetails = await this.decryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, decryptedDetails];\n }\n default: {\n let decryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && decryptedContact[field]) {\n decryptedValue = await this.webex.internal.encryption.decryptText(\n encryptionKeyUrl,\n decryptedContact[field]\n );\n }\n\n return [field, decryptedValue];\n }\n }\n });\n\n const decryptedFieldsList = await Promise.all(decryptionPromises);\n\n decryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n decryptedContact[field] = value;\n }\n });\n\n return decryptedContact;\n }\n\n private resolveCloudContacts(\n contactsDataMap: ContactIdContactInfo,\n inputList: SCIMListResponse\n ): Contact[] | null {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: 'resolveCloudContacts',\n };\n const finalContactList: Contact[] = [];\n const resolvedList: string[] = [];\n\n try {\n inputList.Resources.forEach((item) => {\n resolvedList.push(item.id);\n });\n\n Object.values(contactsDataMap).forEach((item) => {\n const isResolved = resolvedList.some((listItem) => listItem === item.contactId);\n if (!isResolved) {\n finalContactList.push({...item, resolved: false});\n }\n });\n\n for (let n = 0; n < inputList.Resources.length; n += 1) {\n const filteredContact = inputList.Resources[n];\n const {displayName, emails, phoneNumbers, photos} = filteredContact;\n let sipAddresses;\n if (filteredContact[SCIM_WEBEXIDENTITY_USER]) {\n sipAddresses = filteredContact[SCIM_WEBEXIDENTITY_USER].sipAddresses;\n }\n const firstName = filteredContact.name?.givenName;\n const lastName = filteredContact.name?.familyName;\n const manager = filteredContact[SCIM_ENTERPRISE_USER]?.manager?.displayName;\n const department = filteredContact[SCIM_ENTERPRISE_USER]?.department;\n const avatarURL = photos?.length ? photos[0].value : '';\n\n const {contactType, avatarUrlDomain, encryptionKeyUrl, ownerId, groups} =\n contactsDataMap[inputList.Resources[n].id];\n\n const cloudContact = {\n avatarUrlDomain,\n avatarURL,\n contactId: inputList.Resources[n].id,\n contactType,\n department,\n displayName,\n emails,\n encryptionKeyUrl,\n firstName,\n groups,\n lastName,\n manager,\n ownerId,\n phoneNumbers,\n sipAddresses,\n resolved: true,\n };\n\n finalContactList.push(cloudContact);\n }\n } catch (error: any) {\n log.warn('Error occurred while parsing resolved contacts', loggerContext);\n\n return null;\n }\n\n return finalContactList;\n }\n\n /**\n * Returns list of contacts.\n */\n public async getContacts(): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.GET_CONTACTS,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n const contactList: Contact[] = [];\n const cloudContactsMap: ContactIdContactInfo = {};\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.contactsServiceUrl}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(\n `Response code: ${response.statusCode} and Response trackingId: ${response?.headers?.trackingid}`,\n loggerContext\n );\n\n const responseBody = response.body as ContactList;\n\n if (!responseBody) {\n throw new Error(`${response}`);\n }\n\n const {contacts, groups} = responseBody;\n\n await Promise.all(\n contacts.map(async (contact) => {\n if (contact.contactType === ContactType.CUSTOM) {\n const decryptedContact = await this.decryptContact(contact);\n\n contactList.push(decryptedContact);\n } else if (contact.contactType === ContactType.CLOUD && contact.contactId) {\n cloudContactsMap[contact.contactId] = contact;\n }\n })\n );\n\n // Resolve cloud contacts\n if (Object.keys(cloudContactsMap).length) {\n const contactIdList = Object.keys(cloudContactsMap);\n const totalContacts = contactIdList.length;\n const MAX_CONTACTS_PER_QUERY = 50;\n\n for (let i = 0; i < totalContacts; i += MAX_CONTACTS_PER_QUERY) {\n try {\n const contactIdListChunk = contactIdList.slice(i, i + MAX_CONTACTS_PER_QUERY);\n const query = contactIdListChunk.map((item) => `${SCIM_ID_FILTER} \"${item}\"`).join(OR);\n const result = await scimQuery(query);\n\n const slicedCloudContactsMap = Object.fromEntries(\n Object.entries(cloudContactsMap).slice(i, i + MAX_CONTACTS_PER_QUERY)\n );\n\n const resolvedContacts = this.resolveCloudContacts(\n slicedCloudContactsMap,\n result.body as SCIMListResponse\n );\n\n if (resolvedContacts) {\n resolvedContacts.forEach((item) => contactList.push(item));\n }\n } catch (error: any) {\n log.warn(\n `Error processing contact chunk ${i}-${i + MAX_CONTACTS_PER_QUERY}`,\n loggerContext\n );\n }\n }\n }\n\n await Promise.all(\n groups.map(async (group, idx) => {\n groups[idx].displayName = await this.webex.internal.encryption.decryptText(\n group.encryptionKeyUrl,\n group.displayName\n );\n })\n );\n\n this.groups = groups;\n this.contacts = contactList;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contacts: contactList,\n groups,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully fetched contacts and groups', loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n log.error(`Error fetching contacts: ${JSON.stringify(err)}`, loggerContext);\n const errorStatus = serviceErrorCodeHandler(err as WebexRequestPayload, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a new KMS Resource Object (KRO) and Content Key (CK) which is used for encryption.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async createNewEncryptionKeyUrl(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_NEW_ENCRYPTION_KEY_URL,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n let unboundedKeyUri = '';\n\n log.info('Requesting kms for a new KRO and key', loggerContext);\n const unboundedKeys = await this.webex.internal.encryption.kms.createUnboundKeys({count: 1});\n\n unboundedKeyUri = unboundedKeys[0].uri;\n this.webex.internal.encryption.kms.createResource({keyUris: [unboundedKeyUri]});\n\n return unboundedKeyUri;\n }\n\n /**\n * Fetches the encryptionKeyUrl from one of the groups. Creates a new key and default group if there is no data.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async fetchEncryptionKeyUrl(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.FETCH_ENCRYPTION_KEY_URL,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n if (this.encryptionKeyUrl) {\n return this.encryptionKeyUrl;\n }\n // istanbul ignore else\n if (this.groups === undefined) {\n this.getContacts();\n }\n // istanbul ignore else\n if (this.groups && this.groups.length) {\n /** Use the encryptionKeyUrl of any one of the groups */\n return this.groups[0].encryptionKeyUrl;\n }\n\n this.encryptionKeyUrl = await this.createNewEncryptionKeyUrl();\n log.log(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchEncryptionKeyUrl.name,\n });\n const response: ContactResponse = await this.createContactGroup(\n DEFAULT_GROUP_NAME,\n this.encryptionKeyUrl\n );\n\n if (response.data.group?.groupId) {\n this.defaultGroupId = response.data.group?.groupId;\n log.log(`Successfully created default group with ID: ${this.defaultGroupId}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchEncryptionKeyUrl.name,\n });\n }\n\n return this.encryptionKeyUrl;\n }\n\n /**\n * Fetches a default group.\n *\n * @returns GroupId of default group.\n */\n private async fetchDefaultGroup(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.FETCH_DEFAULT_GROUP,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n if (this.defaultGroupId) {\n log.log(`Using existing default group with ID: ${this.defaultGroupId}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchDefaultGroup.name,\n });\n\n return this.defaultGroupId;\n }\n\n /* Check the groups list and determine the defaultGroupId */\n if (this.groups && this.groups.length) {\n for (let i = 0; i < this.groups.length; i += 1) {\n if (this.groups[i].displayName === DEFAULT_GROUP_NAME) {\n this.defaultGroupId = this.groups[i].groupId;\n log.log(`Found default group with ID: ${this.defaultGroupId}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchDefaultGroup.name,\n });\n\n return this.defaultGroupId;\n }\n }\n }\n\n log.log('No default group found.', {\n file: CONTACTS_CLIENT,\n method: this.fetchDefaultGroup.name,\n });\n\n const response: ContactResponse = await this.createContactGroup(DEFAULT_GROUP_NAME);\n\n const {group} = response.data;\n\n if (group) {\n const groupId = group.groupId;\n log.log(`Successfully created new default group with ID: ${groupId}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchDefaultGroup.name,\n });\n\n return groupId;\n }\n\n return '';\n }\n\n /**\n * Creates a personal contact group.\n * Also creates a KRO, if there aren't any groups.\n * @param displayName - Name of the group to create.\n * @param encryptionKeyUrl - EncryptionKeyUrl to encrypt the displayName.\n * @param groupType - Type of the group to create.\n */\n public async createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT_GROUP,\n };\n\n log.info(`${METHOD_START_MESSAGE} with displayName: ${displayName}`, loggerContext);\n\n const encryptionKeyUrlFinal = encryptionKeyUrl || (await this.fetchEncryptionKeyUrl());\n\n if (this.groups === undefined) {\n await this.getContacts();\n }\n\n if (this.groups && this.groups.length) {\n const isExistingGroup = this.groups.find((group) => {\n return group.displayName === displayName;\n });\n\n if (isExistingGroup) {\n log.warn(`Group name ${displayName} already exists.`, loggerContext);\n\n return {\n statusCode: 400 as number,\n data: {error: 'Group displayName already exists'},\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const encryptedDisplayName = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrlFinal,\n displayName\n );\n\n const groupInfo = {\n schemas: CONTACTS_SCHEMA,\n displayName: encryptedDisplayName,\n groupType: groupType || GroupType.NORMAL,\n encryptionKeyUrl: encryptionKeyUrlFinal,\n };\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.contactsServiceUrl}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`,\n method: HTTP_METHODS.POST,\n body: groupInfo,\n });\n\n log.log(`Response code: ${response.statusCode}`, loggerContext);\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const group = response.body as ContactGroup;\n\n group.displayName = displayName;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n group,\n },\n message: SUCCESS_MESSAGE,\n };\n\n this.groups?.push(group);\n log.log(`Contact group ${displayName} successfully created`, loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n log.error(`Unable to create contact group: ${JSON.stringify(err)}`, loggerContext);\n const errorStatus = serviceErrorCodeHandler(err as WebexRequestPayload, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * Deletes a contact group.\n * @param groupId - GroupId of the group to delete.\n */\n public async deleteContactGroup(groupId: string) {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.DELETE_CONTACT_GROUP,\n };\n\n log.info(`${METHOD_START_MESSAGE} with groupId: ${groupId}`, loggerContext);\n\n try {\n log.info(`Deleting contact group: ${groupId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.contactsServiceUrl}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}/${groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const groupToDelete = this.groups?.findIndex((group) => group.groupId === groupId);\n\n if (groupToDelete !== undefined && groupToDelete !== -1) {\n this.groups?.splice(groupToDelete, 1);\n }\n\n if (!this.groups?.length) {\n this.defaultGroupId = '';\n }\n\n log.log(`Contact group ${groupId} successfully deleted`, loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n log.error(`Unable to delete contact group ${groupId}: ${JSON.stringify(err)}`, loggerContext);\n const errorStatus = serviceErrorCodeHandler(err as WebexRequestPayload, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a custom contact.\n * @param contactInfo - Contact object to create.\n */\n public async createContact(contactInfo: Contact): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT,\n };\n\n log.info(`${METHOD_START_MESSAGE} with contactType: ${contactInfo.contactType}`, loggerContext);\n\n try {\n const contact = {...contactInfo};\n\n if (!contact.encryptionKeyUrl) {\n contact.encryptionKeyUrl = await this.fetchEncryptionKeyUrl();\n }\n\n if (!contact.groups || contact.groups.length === 0) {\n /** Fetch the groupId for the default group if not create */\n const defaultGroupId = await this.fetchDefaultGroup();\n\n contact.groups = [defaultGroupId];\n }\n\n contact.schemas = CONTACTS_SCHEMA;\n let requestBody = {};\n\n switch (contact.contactType) {\n case ContactType.CUSTOM: {\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n case ContactType.CLOUD: {\n if (!contact.contactId) {\n return {\n statusCode: 400 as number,\n data: {\n error: 'contactId is required for contactType:CLOUD.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n default: {\n return {\n statusCode: 400 as number,\n data: {\n error: 'Unknown contactType received.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.contactsServiceUrl}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.POST,\n body: requestBody,\n });\n\n log.log(`Response code: ${response.statusCode}`, loggerContext);\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const newContact = response.body as Contact;\n\n contact.contactId = newContact.contactId;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contact,\n },\n message: SUCCESS_MESSAGE,\n };\n\n if (contact.contactType === ContactType.CLOUD && newContact.contactId) {\n const query = `${SCIM_ID_FILTER} \"${newContact.contactId}\"`;\n const res = await scimQuery(query);\n const resolvedContact = this.resolveCloudContacts(\n Object.fromEntries([[newContact.contactId, newContact]]) as ContactIdContactInfo,\n res.body as SCIMListResponse\n );\n if (resolvedContact) {\n this.contacts?.push(resolvedContact[0]);\n }\n } else {\n this.contacts?.push(contact);\n }\n log.log(`Contact successfully created`, loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n log.error(`Failed to create contact: ${JSON.stringify(err)}`, loggerContext);\n const errorStatus = serviceErrorCodeHandler(err as WebexRequestPayload, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * Delete a contact.\n * @param contactId - ContactId of the contact to delete.\n */\n public async deleteContact(contactId: string): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.DELETE_CONTACT,\n };\n\n log.info(`${METHOD_START_MESSAGE} with contactId: ${contactId}`, loggerContext);\n\n try {\n log.info(`Deleting contact : ${contactId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.contactsServiceUrl}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}/${contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const contactToDelete = this.contacts?.findIndex(\n (contact) => contact.contactId === contactId\n );\n\n if (contactToDelete !== undefined && contactToDelete !== -1) {\n this.contacts?.splice(contactToDelete, 1);\n }\n\n log.log(`Contact ${contactId} successfully deleted`, loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n log.error(`Unable to delete contact ${contactId}: ${JSON.stringify(err)}`, loggerContext);\n const errorStatus = serviceErrorCodeHandler(err as WebexRequestPayload, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n}\n\n/**\n * Creates a ContactsClient instance\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 createContactsClient = (webex: WebexSDK, logger: LoggerInterface): IContacts =>\n new ContactsClient(webex, logger);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_constants","require","_types","_SDKConnector","_interopRequireDefault","_Logger","_constants2","_types2","_Utils","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ContactsClient","exports","webex","logger","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","encryptionKeyUrl","groups","undefined","contacts","defaultGroupId","log","setLogger","level","CONTACTS_CLIENT","_createClass2","key","value","_decryptContactDetail","_asyncToGenerator2","_regenerator","mark","_callee","contactDetails","_this","decryptedContactDetail","decryptedValues","wrap","_callee$","_context","prev","next","_toConsumableArray2","_promise","all","map","detail","internal","encryption","decryptText","sent","decryptedValue","index","abrupt","stop","decryptContactDetail","_x","_x2","_encryptContactDetail","_callee2","_this2","encryptedContactDetail","encryptedValues","_callee2$","_context2","encryptText","encryptedValue","encryptContactDetail","_x3","_x4","_encryptContact","_callee5","contact","_this3","encryptedContact","encryptionPromises","encryptedFieldsList","_callee5$","_context5","_values","encryptedFields","_ref","_callee4","field","plaintextAddressInfo","encryptedAddressInfo","encryptedAddressInfoPromises","plainTextDetails","encryptedDetails","_callee4$","_context4","t0","ADDRESS_INFO","EMAILS","PHONE_NUMBERS","SIP_ADDRESSES","addressInfo","_entries","_ref3","_callee3","_ref2","_ref4","_callee3$","_context3","_slicedToArray2","t1","_x7","t2","fromEntries","call","includes","_x6","_ref5","_ref6","encryptContact","_x5","_decryptContact","_callee8","_this4","decryptedContact","decryptionPromises","decryptedFieldsList","_callee8$","_context8","_ref7","_callee7","decryptedAddressInfo","decryptedAddressInfoPromises","decryptedDetails","_callee7$","_context7","_ref9","_callee6","_ref8","_ref0","_callee6$","_context6","_x0","_x9","_ref1","_ref10","decryptContact","_x8","resolveCloudContacts","contactsDataMap","inputList","loggerContext","file","method","finalContactList","resolvedList","Resources","item","id","isResolved","some","listItem","contactId","resolved","n","_filteredContact$name","_filteredContact$name2","_filteredContact$SCIM","_filteredContact$SCIM2","_filteredContact$SCIM3","filteredContact","displayName","emails","phoneNumbers","photos","sipAddresses","SCIM_WEBEXIDENTITY_USER","firstName","name","givenName","lastName","familyName","manager","SCIM_ENTERPRISE_USER","department","avatarURL","_contactsDataMap$inpu","contactType","avatarUrlDomain","ownerId","cloudContact","error","warn","_getContacts","_callee1","_this5","contactList","cloudContactsMap","_response$headers","response","responseBody","contactIdList","totalContacts","MAX_CONTACTS_PER_QUERY","i","contactIdListChunk","query","result","slicedCloudContactsMap","resolvedContacts","contactResponse","errorInfo","extendedError","errorStatus","_callee1$","_context1","METHODS","GET_CONTACTS","info","METHOD_START_MESSAGE","request","uri","concat","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","statusCode","headers","trackingid","body","Error","_ref11","_callee9","_callee9$","_context9","ContactType","CUSTOM","CLOUD","_x1","_keys","slice","SCIM_ID_FILTER","join","OR","scimQuery","_ref12","_callee0","group","idx","_callee0$","_context0","_x10","_x11","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","serviceErrorCodeHandler","uploadLogs","getContacts","_createNewEncryptionKeyUrl","_callee10","unboundedKeyUri","unboundedKeys","_callee10$","_context10","CREATE_NEW_ENCRYPTION_KEY_URL","kms","createUnboundKeys","count","createResource","keyUris","createNewEncryptionKeyUrl","_fetchEncryptionKeyUrl","_callee11","_response$data$group","_response$data$group2","_callee11$","_context11","FETCH_ENCRYPTION_KEY_URL","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee12","_callee12$","_context12","FETCH_DEFAULT_GROUP","fetchDefaultGroup","_createContactGroup","_callee13","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_response$headers2","_this$groups","_callee13$","_context13","CREATE_CONTACT_GROUP","find","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x12","_x13","_x14","_deleteContactGroup","_callee14","_response$headers3","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee14$","_context14","DELETE_CONTACT_GROUP","DELETE","findIndex","splice","deleteContactGroup","_x15","_createContact","_callee15","contactInfo","_response$headers4","requestBody","_encryptedContact","newContact","res","resolvedContact","_this$contacts","_this$contacts2","_callee15$","_context15","CREATE_CONTACT","createContact","_x16","_deleteContact","_callee16","_this$contacts3","contactToDelete","_this$contacts4","_callee16$","_context16","DELETE_CONTACT","deleteContact","_x17","getSDKConnector","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport ExtendedError from 'Errors/catalog/ExtendedError';\nimport {\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n SCIM_ENTERPRISE_USER,\n SCIM_WEBEXIDENTITY_USER,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload, ContactDetail, SCIMListResponse} from '../common/types';\nimport {LoggerInterface} from '../Voicemail/types';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport SDKConnector from '../SDKConnector';\n\nimport log from '../Logger';\nimport {\n CONTACTS_CLIENT,\n CONTACTS_SCHEMA,\n CONTACT_FILTER,\n DEFAULT_GROUP_NAME,\n ENCRYPT_FILTER,\n GROUP_FILTER,\n METHODS,\n OR,\n SCIM_ID_FILTER,\n USERS,\n encryptedFields,\n} from './constants';\nimport {\n Contact,\n ContactIdContactInfo,\n ContactList,\n ContactResponse,\n ContactType,\n IContacts,\n ContactGroup,\n GroupType,\n} from './types';\n\nimport {scimQuery, serviceErrorCodeHandler, uploadLogs} from '../common/Utils';\n\n/**\n * `ContactsClient` module is designed to offer a set of APIs for retrieving and updating contacts and groups from the contacts-service.\n *\n * This code snippet demonstrates how to create an instance of `ContactClient` using webex and logger.\n *\n * Example\n * ```javascript\n * const contactClient = createContactsClient(webex, logger);\n * ```\n */\nexport class ContactsClient implements IContacts {\n private sdkConnector: ISDKConnector;\n\n private encryptionKeyUrl: string;\n\n private webex: WebexSDK;\n\n private groups: ContactGroup[] | undefined;\n\n private contacts: Contact[] | undefined;\n\n private defaultGroupId: string;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n\n this.encryptionKeyUrl = '';\n this.groups = undefined;\n this.contacts = undefined;\n this.defaultGroupId = '';\n\n log.setLogger(logger.level, CONTACTS_CLIENT);\n }\n\n /**\n * Decrypt emails, phoneNumbers, sipAddresses.\n */\n private async decryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const decryptedContactDetail = [...contactDetails];\n\n const decryptedValues = await Promise.all(\n decryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.decryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n decryptedValues.forEach((decryptedValue, index) => {\n decryptedContactDetail[index].value = decryptedValue;\n });\n\n return decryptedContactDetail;\n }\n\n /**\n * Encrypt emails, phoneNumbers, sipAddresses.\n *\n */\n private async encryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const encryptedContactDetail = [...contactDetails];\n\n const encryptedValues = await Promise.all(\n encryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.encryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n encryptedValues.forEach((encryptedValue, index) => {\n encryptedContactDetail[index].value = encryptedValue;\n });\n\n return encryptedContactDetail;\n }\n\n /**\n * Encrypts a given contact.\n */\n private async encryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const encryptedContact: Contact = {...contact};\n\n const encryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = encryptedContact.addressInfo;\n let encryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const encryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.encryptText(encryptionKeyUrl, value),\n ]\n );\n\n encryptedAddressInfo = Object.fromEntries(\n await Promise.all(encryptedAddressInfoPromises)\n );\n }\n\n return [field, encryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = encryptedContact[field];\n let encryptedDetails;\n\n if (plainTextDetails) {\n encryptedDetails = await this.encryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, encryptedDetails];\n }\n default: {\n let encryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && encryptedContact[field]) {\n encryptedValue = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrl,\n encryptedContact[field]\n );\n }\n\n return [field, encryptedValue];\n }\n }\n });\n\n const encryptedFieldsList = await Promise.all(encryptionPromises);\n\n encryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n encryptedContact[field] = value;\n }\n });\n\n return encryptedContact;\n }\n\n /**\n * Decrypts a given contact.\n */\n private async decryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const decryptedContact: Contact = {...contact};\n\n const decryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = decryptedContact.addressInfo;\n let decryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const decryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.decryptText(encryptionKeyUrl, value),\n ]\n );\n\n decryptedAddressInfo = Object.fromEntries(\n await Promise.all(decryptedAddressInfoPromises)\n );\n }\n\n return [field, decryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = decryptedContact[field];\n let decryptedDetails;\n\n if (plainTextDetails) {\n decryptedDetails = await this.decryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, decryptedDetails];\n }\n default: {\n let decryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && decryptedContact[field]) {\n decryptedValue = await this.webex.internal.encryption.decryptText(\n encryptionKeyUrl,\n decryptedContact[field]\n );\n }\n\n return [field, decryptedValue];\n }\n }\n });\n\n const decryptedFieldsList = await Promise.all(decryptionPromises);\n\n decryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n decryptedContact[field] = value;\n }\n });\n\n return decryptedContact;\n }\n\n private resolveCloudContacts(\n contactsDataMap: ContactIdContactInfo,\n inputList: SCIMListResponse\n ): Contact[] | null {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: 'resolveCloudContacts',\n };\n const finalContactList: Contact[] = [];\n const resolvedList: string[] = [];\n\n try {\n inputList.Resources.forEach((item) => {\n resolvedList.push(item.id);\n });\n\n Object.values(contactsDataMap).forEach((item) => {\n const isResolved = resolvedList.some((listItem) => listItem === item.contactId);\n if (!isResolved) {\n finalContactList.push({...item, resolved: false});\n }\n });\n\n for (let n = 0; n < inputList.Resources.length; n += 1) {\n const filteredContact = inputList.Resources[n];\n const {displayName, emails, phoneNumbers, photos} = filteredContact;\n let sipAddresses;\n if (filteredContact[SCIM_WEBEXIDENTITY_USER]) {\n sipAddresses = filteredContact[SCIM_WEBEXIDENTITY_USER].sipAddresses;\n }\n const firstName = filteredContact.name?.givenName;\n const lastName = filteredContact.name?.familyName;\n const manager = filteredContact[SCIM_ENTERPRISE_USER]?.manager?.displayName;\n const department = filteredContact[SCIM_ENTERPRISE_USER]?.department;\n const avatarURL = photos?.length ? photos[0].value : '';\n\n const {contactType, avatarUrlDomain, encryptionKeyUrl, ownerId, groups} =\n contactsDataMap[inputList.Resources[n].id];\n\n const cloudContact = {\n avatarUrlDomain,\n avatarURL,\n contactId: inputList.Resources[n].id,\n contactType,\n department,\n displayName,\n emails,\n encryptionKeyUrl,\n firstName,\n groups,\n lastName,\n manager,\n ownerId,\n phoneNumbers,\n sipAddresses,\n resolved: true,\n };\n\n finalContactList.push(cloudContact);\n }\n } catch (error: any) {\n log.warn('Error occurred while parsing resolved contacts', loggerContext);\n\n return null;\n }\n\n return finalContactList;\n }\n\n /**\n * Returns list of contacts.\n */\n public async getContacts(): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.GET_CONTACTS,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n const contactList: Contact[] = [];\n const cloudContactsMap: ContactIdContactInfo = {};\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(\n `Response code: ${response.statusCode} and Response trackingId: ${response?.headers?.trackingid}`,\n loggerContext\n );\n\n const responseBody = response.body as ContactList;\n\n if (!responseBody) {\n throw new Error(`${response}`);\n }\n\n const {contacts, groups} = responseBody;\n\n await Promise.all(\n contacts.map(async (contact) => {\n if (contact.contactType === ContactType.CUSTOM) {\n const decryptedContact = await this.decryptContact(contact);\n\n contactList.push(decryptedContact);\n } else if (contact.contactType === ContactType.CLOUD && contact.contactId) {\n cloudContactsMap[contact.contactId] = contact;\n }\n })\n );\n\n // Resolve cloud contacts\n if (Object.keys(cloudContactsMap).length) {\n const contactIdList = Object.keys(cloudContactsMap);\n const totalContacts = contactIdList.length;\n const MAX_CONTACTS_PER_QUERY = 50;\n\n for (let i = 0; i < totalContacts; i += MAX_CONTACTS_PER_QUERY) {\n try {\n const contactIdListChunk = contactIdList.slice(i, i + MAX_CONTACTS_PER_QUERY);\n const query = contactIdListChunk.map((item) => `${SCIM_ID_FILTER} \"${item}\"`).join(OR);\n const result = await scimQuery(query);\n\n const slicedCloudContactsMap = Object.fromEntries(\n Object.entries(cloudContactsMap).slice(i, i + MAX_CONTACTS_PER_QUERY)\n );\n\n const resolvedContacts = this.resolveCloudContacts(\n slicedCloudContactsMap,\n result.body as SCIMListResponse\n );\n\n if (resolvedContacts) {\n resolvedContacts.forEach((item) => contactList.push(item));\n }\n } catch (error: any) {\n log.warn(\n `Error processing contact chunk ${i}-${i + MAX_CONTACTS_PER_QUERY}`,\n loggerContext\n );\n }\n }\n }\n\n await Promise.all(\n groups.map(async (group, idx) => {\n groups[idx].displayName = await this.webex.internal.encryption.decryptText(\n group.encryptionKeyUrl,\n group.displayName\n );\n })\n );\n\n this.groups = groups;\n this.contacts = contactList;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contacts: contactList,\n groups,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log('Successfully fetched contacts and groups', loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const extendedError = new Error(`Error fetching contacts: ${err}`) as ExtendedError;\n log.error(extendedError, loggerContext);\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a new KMS Resource Object (KRO) and Content Key (CK) which is used for encryption.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async createNewEncryptionKeyUrl(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_NEW_ENCRYPTION_KEY_URL,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n let unboundedKeyUri = '';\n\n log.info('Requesting kms for a new KRO and key', loggerContext);\n const unboundedKeys = await this.webex.internal.encryption.kms.createUnboundKeys({count: 1});\n\n unboundedKeyUri = unboundedKeys[0].uri;\n this.webex.internal.encryption.kms.createResource({keyUris: [unboundedKeyUri]});\n\n return unboundedKeyUri;\n }\n\n /**\n * Fetches the encryptionKeyUrl from one of the groups. Creates a new key and default group if there is no data.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async fetchEncryptionKeyUrl(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.FETCH_ENCRYPTION_KEY_URL,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n if (this.encryptionKeyUrl) {\n return this.encryptionKeyUrl;\n }\n // istanbul ignore else\n if (this.groups === undefined) {\n this.getContacts();\n }\n // istanbul ignore else\n if (this.groups && this.groups.length) {\n /** Use the encryptionKeyUrl of any one of the groups */\n return this.groups[0].encryptionKeyUrl;\n }\n\n this.encryptionKeyUrl = await this.createNewEncryptionKeyUrl();\n log.log(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchEncryptionKeyUrl.name,\n });\n const response: ContactResponse = await this.createContactGroup(\n DEFAULT_GROUP_NAME,\n this.encryptionKeyUrl\n );\n\n if (response.data.group?.groupId) {\n this.defaultGroupId = response.data.group?.groupId;\n log.log(`Successfully created default group with ID: ${this.defaultGroupId}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchEncryptionKeyUrl.name,\n });\n }\n\n return this.encryptionKeyUrl;\n }\n\n /**\n * Fetches a default group.\n *\n * @returns GroupId of default group.\n */\n private async fetchDefaultGroup(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.FETCH_DEFAULT_GROUP,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n if (this.defaultGroupId) {\n log.log(`Using existing default group with ID: ${this.defaultGroupId}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchDefaultGroup.name,\n });\n\n return this.defaultGroupId;\n }\n\n /* Check the groups list and determine the defaultGroupId */\n if (this.groups && this.groups.length) {\n for (let i = 0; i < this.groups.length; i += 1) {\n if (this.groups[i].displayName === DEFAULT_GROUP_NAME) {\n this.defaultGroupId = this.groups[i].groupId;\n log.log(`Found default group with ID: ${this.defaultGroupId}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchDefaultGroup.name,\n });\n\n return this.defaultGroupId;\n }\n }\n }\n\n log.log('No default group found.', {\n file: CONTACTS_CLIENT,\n method: this.fetchDefaultGroup.name,\n });\n\n const response: ContactResponse = await this.createContactGroup(DEFAULT_GROUP_NAME);\n\n const {group} = response.data;\n\n if (group) {\n const groupId = group.groupId;\n log.log(`Successfully created new default group with ID: ${groupId}`, {\n file: CONTACTS_CLIENT,\n method: this.fetchDefaultGroup.name,\n });\n\n return groupId;\n }\n\n return '';\n }\n\n /**\n * Creates a personal contact group.\n * Also creates a KRO, if there aren't any groups.\n * @param displayName - Name of the group to create.\n * @param encryptionKeyUrl - EncryptionKeyUrl to encrypt the displayName.\n * @param groupType - Type of the group to create.\n */\n public async createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT_GROUP,\n };\n\n log.info(`${METHOD_START_MESSAGE} with displayName: ${displayName}`, loggerContext);\n\n const encryptionKeyUrlFinal = encryptionKeyUrl || (await this.fetchEncryptionKeyUrl());\n\n if (this.groups === undefined) {\n await this.getContacts();\n }\n\n if (this.groups && this.groups.length) {\n const isExistingGroup = this.groups.find((group) => {\n return group.displayName === displayName;\n });\n\n if (isExistingGroup) {\n log.warn(`Group name ${displayName} already exists.`, loggerContext);\n\n return {\n statusCode: 400 as number,\n data: {error: 'Group displayName already exists'},\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const encryptedDisplayName = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrlFinal,\n displayName\n );\n\n const groupInfo = {\n schemas: CONTACTS_SCHEMA,\n displayName: encryptedDisplayName,\n groupType: groupType || GroupType.NORMAL,\n encryptionKeyUrl: encryptionKeyUrlFinal,\n };\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`,\n method: HTTP_METHODS.POST,\n body: groupInfo,\n });\n\n log.log(`Response code: ${response.statusCode}`, loggerContext);\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const group = response.body as ContactGroup;\n\n group.displayName = displayName;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n group,\n },\n message: SUCCESS_MESSAGE,\n };\n\n this.groups?.push(group);\n log.log(`Contact group ${displayName} successfully created`, loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const extendedError = new Error(`Unable to create contact group: ${err}`) as ExtendedError;\n log.error(extendedError, loggerContext);\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * Deletes a contact group.\n * @param groupId - GroupId of the group to delete.\n */\n public async deleteContactGroup(groupId: string) {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.DELETE_CONTACT_GROUP,\n };\n\n log.info(`${METHOD_START_MESSAGE} with groupId: ${groupId}`, loggerContext);\n\n try {\n log.info(`Deleting contact group: ${groupId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}/${groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const groupToDelete = this.groups?.findIndex((group) => group.groupId === groupId);\n\n if (groupToDelete !== undefined && groupToDelete !== -1) {\n this.groups?.splice(groupToDelete, 1);\n }\n\n if (!this.groups?.length) {\n this.defaultGroupId = '';\n }\n\n log.log(`Contact group ${groupId} successfully deleted`, loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const extendedError = new Error(\n `Unable to delete contact group ${groupId}: ${err}`\n ) as ExtendedError;\n log.error(extendedError, loggerContext);\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a custom contact.\n * @param contactInfo - Contact object to create.\n */\n public async createContact(contactInfo: Contact): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT,\n };\n\n log.info(`${METHOD_START_MESSAGE} with contactType: ${contactInfo.contactType}`, loggerContext);\n\n try {\n const contact = {...contactInfo};\n\n if (!contact.encryptionKeyUrl) {\n contact.encryptionKeyUrl = await this.fetchEncryptionKeyUrl();\n }\n\n if (!contact.groups || contact.groups.length === 0) {\n /** Fetch the groupId for the default group if not create */\n const defaultGroupId = await this.fetchDefaultGroup();\n\n contact.groups = [defaultGroupId];\n }\n\n contact.schemas = CONTACTS_SCHEMA;\n let requestBody = {};\n\n switch (contact.contactType) {\n case ContactType.CUSTOM: {\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n case ContactType.CLOUD: {\n if (!contact.contactId) {\n return {\n statusCode: 400 as number,\n data: {\n error: 'contactId is required for contactType:CLOUD.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n default: {\n return {\n statusCode: 400 as number,\n data: {\n error: 'Unknown contactType received.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.POST,\n body: requestBody,\n });\n\n log.log(`Response code: ${response.statusCode}`, loggerContext);\n log.log(`Response trackingId: ${response?.headers?.trackingid}`, loggerContext);\n\n const newContact = response.body as Contact;\n\n contact.contactId = newContact.contactId;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contact,\n },\n message: SUCCESS_MESSAGE,\n };\n\n if (contact.contactType === ContactType.CLOUD && newContact.contactId) {\n const query = `${SCIM_ID_FILTER} \"${newContact.contactId}\"`;\n const res = await scimQuery(query);\n const resolvedContact = this.resolveCloudContacts(\n Object.fromEntries([[newContact.contactId, newContact]]) as ContactIdContactInfo,\n res.body as SCIMListResponse\n );\n if (resolvedContact) {\n this.contacts?.push(resolvedContact[0]);\n }\n } else {\n this.contacts?.push(contact);\n }\n log.log(`Contact successfully created`, loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const extendedError = new Error(`Failed to create contact: ${err}`) as ExtendedError;\n log.error(extendedError, loggerContext);\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * Delete a contact.\n * @param contactId - ContactId of the contact to delete.\n */\n public async deleteContact(contactId: string): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: METHODS.DELETE_CONTACT,\n };\n\n log.info(`${METHOD_START_MESSAGE} with contactId: ${contactId}`, loggerContext);\n\n try {\n log.info(`Deleting contact : ${contactId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}/${contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const contactToDelete = this.contacts?.findIndex(\n (contact) => contact.contactId === contactId\n );\n\n if (contactToDelete !== undefined && contactToDelete !== -1) {\n this.contacts?.splice(contactToDelete, 1);\n }\n\n log.log(`Contact ${contactId} successfully deleted`, loggerContext);\n\n return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const extendedError = new Error(\n `Unable to delete contact ${contactId}: ${err}`\n ) as ExtendedError;\n log.error(extendedError, loggerContext);\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n await uploadLogs();\n\n return errorStatus;\n }\n }\n\n /**\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n}\n\n/**\n * Creates a ContactsClient instance\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 createContactsClient = (webex: WebexSDK, logger: LoggerInterface): IContacts =>\n new ContactsClient(webex, logger);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,7 +13,6 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regene
|
|
|
13
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
14
14
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
15
15
|
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
16
|
-
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
17
16
|
var _types = require("../common/types");
|
|
18
17
|
var _testUtil = require("../common/testUtil");
|
|
19
18
|
var _types2 = require("../Logger/types");
|
|
@@ -456,7 +455,7 @@ describe('ContactClient Tests', function () {
|
|
|
456
455
|
expect(warnSpy).toBeCalledTimes(1);
|
|
457
456
|
expect(warnSpy).toHaveBeenNthCalledWith(1, '503 Unable to establish a connection with the server', loggerContext);
|
|
458
457
|
expect(errorSpy).toBeCalledTimes(1);
|
|
459
|
-
expect(errorSpy).toHaveBeenNthCalledWith(1, "Unable to create contact group: ".concat(
|
|
458
|
+
expect(errorSpy).toHaveBeenNthCalledWith(1, Error("Unable to create contact group: ".concat(failureResponsePayload)), loggerContext);
|
|
460
459
|
expect(contactClient['groups']).toEqual(_contactFixtures.mockContactGroupListOne);
|
|
461
460
|
expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);
|
|
462
461
|
case 20:
|
|
@@ -494,7 +493,7 @@ describe('ContactClient Tests', function () {
|
|
|
494
493
|
expect(warnSpy).toBeCalledTimes(1);
|
|
495
494
|
expect(errorSpy).toBeCalledTimes(1);
|
|
496
495
|
expect(uploadLogsSpy).toBeCalledTimes(1);
|
|
497
|
-
expect(errorSpy).toHaveBeenNthCalledWith(1, "Unable to delete contact group ".concat(mockGroupResponse.groupId, ": ").concat(
|
|
496
|
+
expect(errorSpy).toHaveBeenNthCalledWith(1, Error("Unable to delete contact group ".concat(mockGroupResponse.groupId, ": ").concat(failureResponsePayload)), loggerContext);
|
|
498
497
|
expect(warnSpy).toHaveBeenNthCalledWith(1, '503 Unable to establish a connection with the server', loggerContext);
|
|
499
498
|
expect(contactClient['groups']).toEqual(_contactFixtures.mockContactGroupListOne);
|
|
500
499
|
expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);
|
|
@@ -809,7 +808,7 @@ describe('ContactClient Tests', function () {
|
|
|
809
808
|
file: _constants2.CONTACTS_CLIENT,
|
|
810
809
|
method: _constants2.METHODS.CREATE_CONTACT
|
|
811
810
|
});
|
|
812
|
-
expect(_Logger.default.error).toBeCalledWith("Failed to create contact: ".concat(
|
|
811
|
+
expect(_Logger.default.error).toBeCalledWith(Error("Failed to create contact: ".concat(failureResponsePayload)), {
|
|
813
812
|
file: _constants2.CONTACTS_CLIENT,
|
|
814
813
|
method: _constants2.METHODS.CREATE_CONTACT
|
|
815
814
|
});
|