@webex/calling 3.10.0 → 3.11.0-webex-services-ready.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.
Files changed (151) hide show
  1. package/dist/CallHistory/CallHistory.js +128 -133
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +289 -186
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallSettings/CallSettings.js +17 -18
  6. package/dist/CallSettings/CallSettings.js.map +1 -1
  7. package/dist/CallSettings/CallSettings.test.js +14 -14
  8. package/dist/CallSettings/CallSettings.test.js.map +1 -1
  9. package/dist/CallSettings/UcmBackendConnector.js +72 -25
  10. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.test.js +138 -48
  12. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  13. package/dist/CallSettings/WxCallBackendConnector.js +138 -145
  14. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.test.js +149 -150
  16. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  17. package/dist/CallingClient/CallingClient.js +298 -347
  18. package/dist/CallingClient/CallingClient.js.map +1 -1
  19. package/dist/CallingClient/CallingClient.test.js +267 -405
  20. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  21. package/dist/CallingClient/calling/CallerId/index.js +7 -8
  22. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  23. package/dist/CallingClient/calling/CallerId/index.test.js +24 -24
  24. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  25. package/dist/CallingClient/calling/call.js +657 -616
  26. package/dist/CallingClient/calling/call.js.map +1 -1
  27. package/dist/CallingClient/calling/call.test.js +864 -551
  28. package/dist/CallingClient/calling/call.test.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.js +22 -18
  30. package/dist/CallingClient/calling/callManager.js.map +1 -1
  31. package/dist/CallingClient/calling/callManager.test.js +114 -114
  32. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  33. package/dist/CallingClient/constants.js +5 -1
  34. package/dist/CallingClient/constants.js.map +1 -1
  35. package/dist/CallingClient/line/index.js +57 -74
  36. package/dist/CallingClient/line/index.js.map +1 -1
  37. package/dist/CallingClient/line/line.test.js +22 -22
  38. package/dist/CallingClient/line/line.test.js.map +1 -1
  39. package/dist/CallingClient/registration/register.js +659 -527
  40. package/dist/CallingClient/registration/register.js.map +1 -1
  41. package/dist/CallingClient/registration/register.test.js +657 -309
  42. package/dist/CallingClient/registration/register.test.js.map +1 -1
  43. package/dist/CallingClient/registration/types.js.map +1 -1
  44. package/dist/CallingClient/registration/webWorker.js +24 -24
  45. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  46. package/dist/CallingClient/registration/webWorker.test.js +20 -20
  47. package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
  48. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  49. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  50. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +28 -28
  51. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -1
  52. package/dist/Contacts/ContactsClient.js +259 -268
  53. package/dist/Contacts/ContactsClient.js.map +1 -1
  54. package/dist/Contacts/ContactsClient.test.js +64 -63
  55. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  56. package/dist/Errors/catalog/CallError.js +7 -10
  57. package/dist/Errors/catalog/CallError.js.map +1 -1
  58. package/dist/Errors/catalog/CallingDeviceError.js +6 -9
  59. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
  60. package/dist/Errors/catalog/ExtendedError.js +6 -8
  61. package/dist/Errors/catalog/ExtendedError.js.map +1 -1
  62. package/dist/Errors/catalog/LineError.js +6 -9
  63. package/dist/Errors/catalog/LineError.js.map +1 -1
  64. package/dist/Events/impl/index.js +12 -14
  65. package/dist/Events/impl/index.js.map +1 -1
  66. package/dist/Logger/index.js +3 -3
  67. package/dist/Logger/index.js.map +1 -1
  68. package/dist/Logger/index.test.js +1 -1
  69. package/dist/Logger/index.test.js.map +1 -1
  70. package/dist/Metrics/index.js +1 -2
  71. package/dist/Metrics/index.js.map +1 -1
  72. package/dist/SDKConnector/index.js +1 -2
  73. package/dist/SDKConnector/index.js.map +1 -1
  74. package/dist/SDKConnector/types.js.map +1 -1
  75. package/dist/Voicemail/BroadworksBackendConnector.js +131 -139
  76. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  77. package/dist/Voicemail/BroadworksBackendConnector.test.js +106 -98
  78. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  79. package/dist/Voicemail/UcmBackendConnector.js +88 -92
  80. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  81. package/dist/Voicemail/UcmBackendConnector.test.js +72 -72
  82. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  83. package/dist/Voicemail/Voicemail.js +103 -131
  84. package/dist/Voicemail/Voicemail.js.map +1 -1
  85. package/dist/Voicemail/Voicemail.test.js +20 -20
  86. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  87. package/dist/Voicemail/WxCallBackendConnector.js +117 -131
  88. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  89. package/dist/Voicemail/WxCallBackendConnector.test.js +180 -154
  90. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  91. package/dist/common/Utils.js +198 -166
  92. package/dist/common/Utils.js.map +1 -1
  93. package/dist/common/Utils.test.js +436 -191
  94. package/dist/common/Utils.test.js.map +1 -1
  95. package/dist/common/constants.js +3 -1
  96. package/dist/common/constants.js.map +1 -1
  97. package/dist/common/testUtil.js +5 -4
  98. package/dist/common/testUtil.js.map +1 -1
  99. package/dist/module/CallHistory/CallHistory.js +20 -11
  100. package/dist/module/CallSettings/UcmBackendConnector.js +21 -8
  101. package/dist/module/CallSettings/WxCallBackendConnector.js +10 -15
  102. package/dist/module/CallingClient/CallingClient.js +83 -123
  103. package/dist/module/CallingClient/calling/call.js +73 -58
  104. package/dist/module/CallingClient/calling/callManager.js +7 -0
  105. package/dist/module/CallingClient/constants.js +3 -0
  106. package/dist/module/CallingClient/registration/register.js +85 -5
  107. package/dist/module/CallingClient/registration/webWorker.js +2 -2
  108. package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
  109. package/dist/module/Contacts/ContactsClient.js +19 -25
  110. package/dist/module/Events/impl/index.js +1 -1
  111. package/dist/module/Logger/index.js +2 -2
  112. package/dist/module/Voicemail/BroadworksBackendConnector.js +10 -18
  113. package/dist/module/Voicemail/UcmBackendConnector.js +7 -11
  114. package/dist/module/Voicemail/Voicemail.js +42 -68
  115. package/dist/module/Voicemail/WxCallBackendConnector.js +14 -28
  116. package/dist/module/common/Utils.js +31 -5
  117. package/dist/module/common/constants.js +2 -0
  118. package/dist/module/common/testUtil.js +1 -0
  119. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  120. package/dist/types/CallSettings/UcmBackendConnector.d.ts +1 -0
  121. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  122. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  123. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  124. package/dist/types/CallingClient/calling/call.d.ts +4 -0
  125. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  126. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  127. package/dist/types/CallingClient/constants.d.ts +3 -0
  128. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  129. package/dist/types/CallingClient/registration/register.d.ts +4 -0
  130. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  131. package/dist/types/CallingClient/registration/types.d.ts +6 -0
  132. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  133. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  134. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  135. package/dist/types/Contacts/ContactsClient.d.ts +1 -0
  136. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  137. package/dist/types/Logger/index.d.ts +1 -2
  138. package/dist/types/Logger/index.d.ts.map +1 -1
  139. package/dist/types/SDKConnector/types.d.ts +16 -0
  140. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  141. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  142. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  143. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  144. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  145. package/dist/types/common/Utils.d.ts +1 -1
  146. package/dist/types/common/Utils.d.ts.map +1 -1
  147. package/dist/types/common/constants.d.ts +2 -0
  148. package/dist/types/common/constants.d.ts.map +1 -1
  149. package/dist/types/common/testUtil.d.ts +1 -0
  150. package/dist/types/common/testUtil.d.ts.map +1 -1
  151. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"names":["_testUtil","require","_types","_constants","_types2","_WxCallBackendConnector","_CallSettings","_UcmBackendConnector","describe","webex","getTestUtilsWebex","testData","name","callingBehavior","NATIVE_SIP_CALL_TO_UCM","entitlement","valid","NATIVE_WEBEX_TEAMS_CALLING","ENTITLEMENT_BASIC","ENTITLEMENT_STANDARD","ENTITLEMENT_BROADWORKS_CONN","map","stat","_assign","default","toString","it","each","_ref","_asyncToGenerator2","_regenerator","mark","_callee","data","callSettingsClient","wrap","_callee$","_context","prev","next","internal","device","features","models","_values","key","createCallSettingsClient","level","LOGGER","INFO","expect","toBeTruthy","t0","toStrictEqual","CALLING_BACKEND","UCM","toBeInstanceOf","UcmBackendConnector","abrupt","BWRKS","WxCallBackendConnector","WXC","fail","toThrowError","stop","_x","apply","arguments"],"sources":["CallSettings.test.ts"],"sourcesContent":["import {getTestUtilsWebex} from '../common/testUtil';\nimport {LOGGER} from '../Logger/types';\nimport {\n ENTITLEMENT_BASIC,\n ENTITLEMENT_BROADWORKS_CONN,\n ENTITLEMENT_STANDARD,\n NATIVE_SIP_CALL_TO_UCM,\n NATIVE_WEBEX_TEAMS_CALLING,\n} from '../common/constants';\n\nimport {CALLING_BACKEND} from '../common/types';\n\nimport {WxCallBackendConnector} from './WxCallBackendConnector';\nimport {createCallSettingsClient} from './CallSettings';\nimport {UcmBackendConnector} from './UcmBackendConnector';\n\ndescribe('CallSettings Client tests', () => {\n const webex = getTestUtilsWebex();\n\n describe('createCallSettingsClient tests', () => {\n /**\n * TestCase inputs\n * name: TestCase name\n * callingBehavior: Calling profile\n * entitlement: Entitlement\n * valid: expected result for vm client creation with given inputs.\n */\n const testData: {\n name: string;\n callingBehavior: string;\n entitlement: string;\n valid: boolean;\n }[] = [\n {\n name: 'verify valid ucm CallSettings client',\n callingBehavior: NATIVE_SIP_CALL_TO_UCM,\n entitlement: 'none',\n valid: true,\n },\n {\n name: 'verify valid wxc CallSettings client with basic entitlement',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: ENTITLEMENT_BASIC,\n valid: true,\n },\n {\n name: 'verify valid wxc CallSettings client with standard entitlement',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: ENTITLEMENT_STANDARD,\n valid: true,\n },\n {\n name: 'verify valid wxc CallSettings client with broadworks entitlement',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: ENTITLEMENT_BROADWORKS_CONN,\n valid: true,\n },\n {\n name: 'verify invalid callingBehavior',\n callingBehavior: 'INVALID',\n entitlement: ENTITLEMENT_BASIC,\n valid: false,\n },\n {\n name: 'verify invalid entitlement for wxc CallSettings client',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: 'invalid',\n valid: false,\n },\n ].map((stat) =>\n Object.assign(stat, {\n toString() {\n /* eslint-disable dot-notation */\n return this['name'];\n },\n })\n );\n\n it.each(testData)('%s', async (data) => {\n webex.internal.device.callingBehavior = data.callingBehavior;\n webex.internal.device.features.entitlement.models = [{_values: {key: data.entitlement}}];\n if (data.valid) {\n const callSettingsClient = createCallSettingsClient(webex, {level: LOGGER.INFO});\n\n expect(callSettingsClient).toBeTruthy();\n\n switch (data.callingBehavior) {\n case NATIVE_SIP_CALL_TO_UCM:\n expect(callSettingsClient['callingBackend']).toStrictEqual(CALLING_BACKEND.UCM);\n expect(callSettingsClient['backendConnector']).toBeInstanceOf(UcmBackendConnector);\n break;\n case NATIVE_WEBEX_TEAMS_CALLING:\n if (data.entitlement === ENTITLEMENT_BROADWORKS_CONN) {\n expect(callSettingsClient['callingBackend']).toStrictEqual(CALLING_BACKEND.BWRKS);\n expect(callSettingsClient['backendConnector']).toBeInstanceOf(WxCallBackendConnector);\n } else {\n /* entitlement basic and standard */\n expect(callSettingsClient['callingBackend']).toStrictEqual(CALLING_BACKEND.WXC);\n expect(callSettingsClient['backendConnector']).toBeInstanceOf(WxCallBackendConnector);\n }\n break;\n default:\n fail('Unknown calling backend type.');\n }\n } else {\n expect(() => {\n createCallSettingsClient(webex, {level: LOGGER.INFO});\n }).toThrowError('Calling backend is not identified, exiting....');\n }\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_testUtil","require","_types","_constants","_types2","_WxCallBackendConnector","_CallSettings","_UcmBackendConnector","describe","webex","getTestUtilsWebex","testData","name","callingBehavior","NATIVE_SIP_CALL_TO_UCM","entitlement","valid","NATIVE_WEBEX_TEAMS_CALLING","ENTITLEMENT_BASIC","ENTITLEMENT_STANDARD","ENTITLEMENT_BROADWORKS_CONN","map","stat","_assign","default","toString","it","each","_ref","_asyncToGenerator2","_regenerator","mark","_callee","data","callSettingsClient","_t","wrap","_context","prev","next","internal","device","features","models","_values","key","createCallSettingsClient","level","LOGGER","INFO","expect","toBeTruthy","toStrictEqual","CALLING_BACKEND","UCM","toBeInstanceOf","UcmBackendConnector","abrupt","BWRKS","WxCallBackendConnector","WXC","fail","toThrowError","stop","_x","apply","arguments"],"sources":["CallSettings.test.ts"],"sourcesContent":["import {getTestUtilsWebex} from '../common/testUtil';\nimport {LOGGER} from '../Logger/types';\nimport {\n ENTITLEMENT_BASIC,\n ENTITLEMENT_BROADWORKS_CONN,\n ENTITLEMENT_STANDARD,\n NATIVE_SIP_CALL_TO_UCM,\n NATIVE_WEBEX_TEAMS_CALLING,\n} from '../common/constants';\n\nimport {CALLING_BACKEND} from '../common/types';\n\nimport {WxCallBackendConnector} from './WxCallBackendConnector';\nimport {createCallSettingsClient} from './CallSettings';\nimport {UcmBackendConnector} from './UcmBackendConnector';\n\ndescribe('CallSettings Client tests', () => {\n const webex = getTestUtilsWebex();\n\n describe('createCallSettingsClient tests', () => {\n /**\n * TestCase inputs\n * name: TestCase name\n * callingBehavior: Calling profile\n * entitlement: Entitlement\n * valid: expected result for vm client creation with given inputs.\n */\n const testData: {\n name: string;\n callingBehavior: string;\n entitlement: string;\n valid: boolean;\n }[] = [\n {\n name: 'verify valid ucm CallSettings client',\n callingBehavior: NATIVE_SIP_CALL_TO_UCM,\n entitlement: 'none',\n valid: true,\n },\n {\n name: 'verify valid wxc CallSettings client with basic entitlement',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: ENTITLEMENT_BASIC,\n valid: true,\n },\n {\n name: 'verify valid wxc CallSettings client with standard entitlement',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: ENTITLEMENT_STANDARD,\n valid: true,\n },\n {\n name: 'verify valid wxc CallSettings client with broadworks entitlement',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: ENTITLEMENT_BROADWORKS_CONN,\n valid: true,\n },\n {\n name: 'verify invalid callingBehavior',\n callingBehavior: 'INVALID',\n entitlement: ENTITLEMENT_BASIC,\n valid: false,\n },\n {\n name: 'verify invalid entitlement for wxc CallSettings client',\n callingBehavior: NATIVE_WEBEX_TEAMS_CALLING,\n entitlement: 'invalid',\n valid: false,\n },\n ].map((stat) =>\n Object.assign(stat, {\n toString() {\n /* eslint-disable dot-notation */\n return this['name'];\n },\n })\n );\n\n it.each(testData)('%s', async (data) => {\n webex.internal.device.callingBehavior = data.callingBehavior;\n webex.internal.device.features.entitlement.models = [{_values: {key: data.entitlement}}];\n if (data.valid) {\n const callSettingsClient = createCallSettingsClient(webex, {level: LOGGER.INFO});\n\n expect(callSettingsClient).toBeTruthy();\n\n switch (data.callingBehavior) {\n case NATIVE_SIP_CALL_TO_UCM:\n expect(callSettingsClient['callingBackend']).toStrictEqual(CALLING_BACKEND.UCM);\n expect(callSettingsClient['backendConnector']).toBeInstanceOf(UcmBackendConnector);\n break;\n case NATIVE_WEBEX_TEAMS_CALLING:\n if (data.entitlement === ENTITLEMENT_BROADWORKS_CONN) {\n expect(callSettingsClient['callingBackend']).toStrictEqual(CALLING_BACKEND.BWRKS);\n expect(callSettingsClient['backendConnector']).toBeInstanceOf(WxCallBackendConnector);\n } else {\n /* entitlement basic and standard */\n expect(callSettingsClient['callingBackend']).toStrictEqual(CALLING_BACKEND.WXC);\n expect(callSettingsClient['backendConnector']).toBeInstanceOf(WxCallBackendConnector);\n }\n break;\n default:\n fail('Unknown calling backend type.');\n }\n } else {\n expect(() => {\n createCallSettingsClient(webex, {level: LOGGER.INFO});\n }).toThrowError('Calling backend is not identified, exiting....');\n }\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  exports.UcmBackendConnector = void 0;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
10
10
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
11
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
11
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
12
13
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
13
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
@@ -45,10 +46,12 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
45
46
  this.useProdWebexApis = useProdWebexApis;
46
47
  }
47
48
 
49
+ // Removed header caching to align with review: fetch per request instead.
50
+
48
51
  /**
49
52
  * Reads call waiting setting at the backend.
50
53
  */
51
- (0, _createClass2.default)(UcmBackendConnector, [{
54
+ return (0, _createClass2.default)(UcmBackendConnector, [{
52
55
  key: "getCallWaitingSetting",
53
56
  value: function getCallWaitingSetting() {
54
57
  var loggerContext = {
@@ -172,8 +175,9 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
172
175
  key: "getCallForwardAlwaysSetting",
173
176
  value: (function () {
174
177
  var _getCallForwardAlwaysSetting = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(directoryNumber) {
175
- var loggerContext, webexApisUrl, resp, _ref, callForwarding, cfa, _response, _response2, response, errorInfo, extendedError, errorStatus;
176
- return _regenerator.default.wrap(function _callee$(_context) {
178
+ var _this$webex, _this$webex$config;
179
+ var loggerContext, headers, webexApisUrl, requestOptions, resp, _ref, callForwarding, cfa, _response, _response2, response, errorInfo, errorStatus, _t;
180
+ return _regenerator.default.wrap(function (_context) {
177
181
  while (1) switch (_context.prev = _context.next) {
178
182
  case 0:
179
183
  loggerContext = {
@@ -181,18 +185,30 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
181
185
  method: _constants2.METHODS.GET_CALL_FORWARD_ALWAYS_SETTING
182
186
  };
183
187
  _Logger.default.info(directoryNumber ? "".concat(_constants.METHOD_START_MESSAGE, " with ").concat(directoryNumber) : _constants.METHOD_START_MESSAGE, loggerContext);
184
- webexApisUrl = this.useProdWebexApis ? _constants.WEBEX_API_CONFIG_PROD_URL : _constants.WEBEX_API_CONFIG_INT_URL;
185
- _context.prev = 3;
188
+
189
+ // Fetch auth headers per request (no caching) to ensure freshness.
190
+ _context.next = 1;
191
+ return this.getAuthHeaders();
192
+ case 1:
193
+ headers = _context.sent;
194
+ if ((_this$webex = this.webex) !== null && _this$webex !== void 0 && (_this$webex$config = _this$webex.config) !== null && _this$webex$config !== void 0 && _this$webex$config.fedramp) {
195
+ webexApisUrl = _constants.WEBEX_API_CONFIG_FEDRAMP_URL;
196
+ } else {
197
+ webexApisUrl = this.useProdWebexApis ? _constants.WEBEX_API_CONFIG_PROD_URL : _constants.WEBEX_API_CONFIG_INT_URL;
198
+ }
199
+ _context.prev = 2;
186
200
  if (!directoryNumber) {
187
- _context.next = 17;
201
+ _context.next = 5;
188
202
  break;
189
203
  }
190
- _context.next = 7;
191
- return this.webex.request({
204
+ requestOptions = {
192
205
  uri: "".concat(webexApisUrl, "/").concat(_constants2.PEOPLE_ENDPOINT, "/").concat(this.userId, "/").concat(_constants2.CF_ENDPOINT.toLowerCase(), "?").concat(_constants2.ORG_ENDPOINT, "=").concat(this.orgId),
193
- method: _types.HTTP_METHODS.GET
194
- });
195
- case 7:
206
+ method: _types.HTTP_METHODS.GET,
207
+ headers: headers
208
+ };
209
+ _context.next = 3;
210
+ return this.webex.request(requestOptions);
211
+ case 3:
196
212
  resp = _context.sent;
197
213
  _Logger.default.log("Response code: ".concat(resp.statusCode), loggerContext);
198
214
  _ref = resp.body, callForwarding = _ref.callForwarding;
@@ -200,7 +216,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
200
216
  return item.dn.endsWith(directoryNumber) || item.e164Number.endsWith(directoryNumber);
201
217
  });
202
218
  if (!cfa) {
203
- _context.next = 15;
219
+ _context.next = 4;
204
220
  break;
205
221
  }
206
222
  _response = {
@@ -215,7 +231,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
215
231
  };
216
232
  _Logger.default.log("Successfully retrieved call forward always setting for directory number: ".concat(directoryNumber), loggerContext);
217
233
  return _context.abrupt("return", _response);
218
- case 15:
234
+ case 4:
219
235
  _response2 = {
220
236
  statusCode: 404,
221
237
  message: _constants.FAILURE_MESSAGE,
@@ -224,7 +240,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
224
240
  }
225
241
  };
226
242
  return _context.abrupt("return", _response2);
227
- case 17:
243
+ case 5:
228
244
  response = {
229
245
  statusCode: 400,
230
246
  message: _constants.FAILURE_MESSAGE,
@@ -233,29 +249,60 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
233
249
  }
234
250
  };
235
251
  return _context.abrupt("return", response);
236
- case 21:
237
- _context.prev = 21;
238
- _context.t0 = _context["catch"](3);
239
- errorInfo = _context.t0;
240
- extendedError = new Error("Failed to get call forward always setting: ".concat(_context.t0));
241
- _Logger.default.error(extendedError, loggerContext);
242
- _context.next = 28;
252
+ case 6:
253
+ _context.prev = 6;
254
+ _t = _context["catch"](2);
255
+ errorInfo = _t;
256
+ _Logger.default.error("Failed to get call forward always setting: ".concat((0, _stringify.default)(_t)), loggerContext);
257
+ _context.next = 7;
243
258
  return (0, _Utils.uploadLogs)();
244
- case 28:
259
+ case 7:
245
260
  errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
246
261
  return _context.abrupt("return", errorStatus);
247
- case 30:
262
+ case 8:
248
263
  case "end":
249
264
  return _context.stop();
250
265
  }
251
- }, _callee, this, [[3, 21]]);
266
+ }, _callee, this, [[2, 6]]);
252
267
  }));
253
268
  function getCallForwardAlwaysSetting(_x) {
254
269
  return _getCallForwardAlwaysSetting.apply(this, arguments);
255
270
  }
256
271
  return getCallForwardAlwaysSetting;
257
272
  }())
273
+ }, {
274
+ key: "getAuthHeaders",
275
+ value: function () {
276
+ var _getAuthHeaders = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
277
+ var _this$webex2, _this$webex2$config;
278
+ var headers;
279
+ return _regenerator.default.wrap(function (_context2) {
280
+ while (1) switch (_context2.prev = _context2.next) {
281
+ case 0:
282
+ headers = {}; // Match behavior from WxCallBackendConnector:
283
+ // Only add authorization for FedRAMP, else rely on implicit auth/session.
284
+ // Note: Use lowercase 'authorization' to match SDK's auth interceptor check
285
+ if (!((_this$webex2 = this.webex) !== null && _this$webex2 !== void 0 && (_this$webex2$config = _this$webex2.config) !== null && _this$webex2$config !== void 0 && _this$webex2$config.fedramp)) {
286
+ _context2.next = 2;
287
+ break;
288
+ }
289
+ _context2.next = 1;
290
+ return this.webex.credentials.getUserToken();
291
+ case 1:
292
+ headers.authorization = _context2.sent;
293
+ case 2:
294
+ return _context2.abrupt("return", headers);
295
+ case 3:
296
+ case "end":
297
+ return _context2.stop();
298
+ }
299
+ }, _callee2, this);
300
+ }));
301
+ function getAuthHeaders() {
302
+ return _getAuthHeaders.apply(this, arguments);
303
+ }
304
+ return getAuthHeaders;
305
+ }()
258
306
  }]);
259
- return UcmBackendConnector;
260
307
  }();
261
308
  //# sourceMappingURL=UcmBackendConnector.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_Logger","_interopRequireDefault","require","_SDKConnector","_Utils","_constants","_types","_constants2","UcmBackendConnector","exports","webex","logger","useProdWebexApis","arguments","length","undefined","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","getWebex","setWebex","log","setLogger","level","UCM_CONNECTOR_FILE","userId","internal","device","orgId","_createClass2","key","value","getCallWaitingSetting","loggerContext","file","method","METHODS","GET_CALL_WAITING_SETTING","info","METHOD_START_MESSAGE","getMethodNotSupportedResponse","getDoNotDisturbSetting","GET_DO_NOT_DISTURB_SETTING","setDoNotDisturbSetting","SET_DO_NOT_DISTURB_SETTING","getCallForwardSetting","GET_CALL_FORWARD_SETTING","setCallForwardSetting","SET_CALL_FORWARD_SETTING","getVoicemailSetting","GET_VOICEMAIL_SETTING","setVoicemailSetting","SET_VOICEMAIL_SETTING","GET_METHOD_NOT_SUPPORTED_RESPONSE","response","serviceErrorCodeHandler","statusCode","_promise","resolve","_getCallForwardAlwaysSetting","_asyncToGenerator2","_regenerator","mark","_callee","directoryNumber","webexApisUrl","resp","_ref","callForwarding","cfa","_response","_response2","errorInfo","extendedError","errorStatus","wrap","_callee$","_context","prev","next","GET_CALL_FORWARD_ALWAYS_SETTING","concat","WEBEX_API_CONFIG_PROD_URL","WEBEX_API_CONFIG_INT_URL","request","uri","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","HTTP_METHODS","GET","sent","body","always","find","item","dn","endsWith","e164Number","Number","STATUS_CODE","message","SUCCESS_MESSAGE","data","callSetting","enabled","destinationVoicemailEnabled","destination","VOICEMAIL","abrupt","FAILURE_MESSAGE","error","t0","Error","uploadLogs","stop","getCallForwardAlwaysSetting","_x","apply"],"sources":["UcmBackendConnector.ts"],"sourcesContent":["import ExtendedError from 'Errors/catalog/ExtendedError';\nimport log from '../Logger';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {serviceErrorCodeHandler, uploadLogs} from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n VOICEMAIL,\n WEBEX_API_CONFIG_INT_URL,\n WEBEX_API_CONFIG_PROD_URL,\n} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {CF_ENDPOINT, METHODS, ORG_ENDPOINT, PEOPLE_ENDPOINT} from './constants';\nimport {\n CallForwardAlwaysSetting,\n CallForwardingSettingsUCM,\n CallSettingResponse,\n IUcmBackendConnector,\n LoggerInterface,\n} from './types';\n\n/**\n * This Connector class will implement child interface of ICallSettings and\n * has methods for the CCUC with UCM backend.\n */\nexport class UcmBackendConnector implements IUcmBackendConnector {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private userId: string;\n\n private orgId: string;\n\n private useProdWebexApis: boolean;\n\n /**\n * @param useProdWebexApis - default value is true\n */\n constructor(webex: WebexSDK, logger: LoggerInterface, useProdWebexApis = true) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n log.setLogger(logger.level, UCM_CONNECTOR_FILE);\n this.userId = this.webex.internal.device.userId;\n this.orgId = this.webex.internal.device.orgId;\n this.useProdWebexApis = useProdWebexApis;\n }\n\n /**\n * Reads call waiting setting at the backend.\n */\n public getCallWaitingSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_WAITING_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads DND setting at the backend.\n */\n public getDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates DND setting at the backend.\n */\n public setDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Call Forward setting at the backend.\n */\n public getCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Call Forward setting at the backend.\n */\n public setCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Voicemail setting at the backend.\n */\n public getVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Voicemail setting at the backend.\n */\n public setVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Returns a default error response for unsupported methods.\n */\n private getMethodNotSupportedResponse(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_METHOD_NOT_SUPPORTED_RESPONSE,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n const response = serviceErrorCodeHandler({statusCode: 501}, loggerContext);\n\n return Promise.resolve(response);\n }\n\n /**\n * Reads the Call Forwarding Always settings at the backend.\n * This will also check if CFA is set to Voicemail.\n * If CFA is set to destination, that will take precedence.\n * For UCM backend, relevant fields in the response are `enabled` & `destination`.\n *\n * @param directoryNumber - Directory number for which CFA needs to returned.\n */\n public async getCallForwardAlwaysSetting(directoryNumber?: string): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_ALWAYS_SETTING,\n };\n\n log.info(\n directoryNumber ? `${METHOD_START_MESSAGE} with ${directoryNumber}` : METHOD_START_MESSAGE,\n loggerContext\n );\n\n const webexApisUrl = this.useProdWebexApis\n ? WEBEX_API_CONFIG_PROD_URL\n : WEBEX_API_CONFIG_INT_URL;\n\n try {\n if (directoryNumber) {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${webexApisUrl}/${PEOPLE_ENDPOINT}/${\n this.userId\n }/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response code: ${resp.statusCode}`, loggerContext);\n\n const {callForwarding} = resp.body as CallForwardingSettingsUCM;\n const cfa = callForwarding.always.find(\n (item) => item.dn.endsWith(directoryNumber) || item.e164Number.endsWith(directoryNumber)\n );\n\n if (cfa) {\n const response = {\n statusCode: Number(resp[STATUS_CODE]),\n message: SUCCESS_MESSAGE,\n data: {\n callSetting: {\n enabled: cfa.destinationVoicemailEnabled || !!cfa.destination,\n destination: cfa.destinationVoicemailEnabled ? VOICEMAIL : cfa.destination,\n } as CallForwardAlwaysSetting,\n },\n };\n\n log.log(\n `Successfully retrieved call forward always setting for directory number: ${directoryNumber}`,\n loggerContext\n );\n\n return response;\n }\n const response = {\n statusCode: 404,\n message: FAILURE_MESSAGE,\n data: {\n error: 'Directory Number is not assigned to the user',\n },\n };\n\n return response;\n }\n const response = {\n statusCode: 400,\n message: FAILURE_MESSAGE,\n data: {\n error: 'Directory Number is mandatory for UCM backend',\n },\n };\n\n return response;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const extendedError = new Error(\n `Failed to get call forward always setting: ${err}`\n ) as ExtendedError;\n log.error(extendedError, loggerContext);\n await uploadLogs();\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAUA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AASA;AACA;AACA;AACA;AAHA,IAIaM,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA;EAW9B;AACF;AACA;EACE,SAAAA,oBAAYE,KAAe,EAAEC,MAAuB,EAA2B;IAAA,IAAzBC,gBAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAAA,IAAAG,gBAAA,CAAAC,OAAA,QAAAT,mBAAA;IAAA,IAAAU,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAC3E,IAAI,CAACE,YAAY,GAAGC,qBAAY;IAEhC,IAAI,CAAC,IAAI,CAACD,YAAY,CAACE,QAAQ,CAAC,CAAC,EAAE;MACjCD,qBAAY,CAACE,QAAQ,CAACZ,KAAK,CAAC;IAC9B;IAEA,IAAI,CAACA,KAAK,GAAG,IAAI,CAACS,YAAY,CAACE,QAAQ,CAAC,CAAC;IACzCE,eAAG,CAACC,SAAS,CAACb,MAAM,CAACc,KAAK,EAAEC,6BAAkB,CAAC;IAC/C,IAAI,CAACC,MAAM,GAAG,IAAI,CAACjB,KAAK,CAACkB,QAAQ,CAACC,MAAM,CAACF,MAAM;IAC/C,IAAI,CAACG,KAAK,GAAG,IAAI,CAACpB,KAAK,CAACkB,QAAQ,CAACC,MAAM,CAACC,KAAK;IAC7C,IAAI,CAAClB,gBAAgB,GAAGA,gBAAgB;EAC1C;;EAEA;AACF;AACA;EAFE,IAAAmB,aAAA,CAAAd,OAAA,EAAAT,mBAAA;IAAAwB,GAAA;IAAAC,KAAA,EAGA,SAAAC,sBAAA,EAA6D;MAC3D,IAAMC,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACC;MAClB,CAAC;MAEDhB,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAU,uBAAA,EAA8D;MAC5D,IAAMR,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACM;MAClB,CAAC;MAEDrB,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAY,uBAAA,EAA8D;MAC5D,IAAMV,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACQ;MAClB,CAAC;MAEDvB,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAc,sBAAA,EAA6D;MAC3D,IAAMZ,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACU;MAClB,CAAC;MAEDzB,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAgB,sBAAA,EAA6D;MAC3D,IAAMd,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACY;MAClB,CAAC;MAED3B,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAkB,oBAAA,EAA2D;MACzD,IAAMhB,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACc;MAClB,CAAC;MAED7B,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAoB,oBAAA,EAA2D;MACzD,IAAMlB,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACgB;MAClB,CAAC;MAED/B,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,OAAO,IAAI,CAACO,6BAA6B,CAAC,CAAC;IAC7C;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAS,8BAAA,EAAsE;MACpE,IAAMP,aAAa,GAAG;QACpBC,IAAI,EAAEV,6BAAkB;QACxBW,MAAM,EAAEC,mBAAO,CAACiB;MAClB,CAAC;MAEDhC,eAAG,CAACiB,IAAI,CAACC,+BAAoB,EAAEN,aAAa,CAAC;MAE7C,IAAMqB,QAAQ,GAAG,IAAAC,8BAAuB,EAAC;QAACC,UAAU,EAAE;MAAG,CAAC,EAAEvB,aAAa,CAAC;MAE1E,OAAOwB,QAAA,CAAA1C,OAAA,CAAQ2C,OAAO,CAACJ,QAAQ,CAAC;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAxB,GAAA;IAAAC,KAAA;MAAA,IAAA4B,4BAAA,OAAAC,kBAAA,CAAA7C,OAAA,eAAA8C,YAAA,CAAA9C,OAAA,CAAA+C,IAAA,CAQA,SAAAC,QAAyCC,eAAwB;QAAA,IAAA/B,aAAA,EAAAgC,YAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,cAAA,EAAAC,GAAA,EAAAC,SAAA,EAAAC,UAAA,EAAAjB,QAAA,EAAAkB,SAAA,EAAAC,aAAA,EAAAC,WAAA;QAAA,OAAAb,YAAA,CAAA9C,OAAA,CAAA4D,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cACzD9C,aAAa,GAAG;gBACpBC,IAAI,EAAEV,6BAAkB;gBACxBW,MAAM,EAAEC,mBAAO,CAAC4C;cAClB,CAAC;cAED3D,eAAG,CAACiB,IAAI,CACN0B,eAAe,MAAAiB,MAAA,CAAM1C,+BAAoB,YAAA0C,MAAA,CAASjB,eAAe,IAAKzB,+BAAoB,EAC1FN,aACF,CAAC;cAEKgC,YAAY,GAAG,IAAI,CAACvD,gBAAgB,GACtCwE,oCAAyB,GACzBC,mCAAwB;cAAAN,QAAA,CAAAC,IAAA;cAAA,KAGtBd,eAAe;gBAAAa,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAAF,QAAA,CAAAE,IAAA;cAAA,OACuB,IAAI,CAACvE,KAAK,CAAC4E,OAAO,CAAC;gBACzDC,GAAG,KAAAJ,MAAA,CAAKhB,YAAY,OAAAgB,MAAA,CAAIK,2BAAe,OAAAL,MAAA,CACrC,IAAI,CAACxD,MAAM,OAAAwD,MAAA,CACTM,uBAAW,CAACC,WAAW,CAAC,CAAC,OAAAP,MAAA,CAAIQ,wBAAY,OAAAR,MAAA,CAAI,IAAI,CAACrD,KAAK,CAAE;gBAC7DO,MAAM,EAAEuD,mBAAY,CAACC;cACvB,CAAC,CAAC;YAAA;cALIzB,IAAI,GAAAW,QAAA,CAAAe,IAAA;cAOVvE,eAAG,CAACA,GAAG,mBAAA4D,MAAA,CAAmBf,IAAI,CAACV,UAAU,GAAIvB,aAAa,CAAC;cAACkC,IAAA,GAEnCD,IAAI,CAAC2B,IAAI,EAA3BzB,cAAc,GAAAD,IAAA,CAAdC,cAAc;cACfC,GAAG,GAAGD,cAAc,CAAC0B,MAAM,CAACC,IAAI,CACpC,UAACC,IAAI;gBAAA,OAAKA,IAAI,CAACC,EAAE,CAACC,QAAQ,CAAClC,eAAe,CAAC,IAAIgC,IAAI,CAACG,UAAU,CAACD,QAAQ,CAAClC,eAAe,CAAC;cAAA,CAC1F,CAAC;cAAA,KAEGK,GAAG;gBAAAQ,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACCzB,SAAQ,GAAG;gBACfE,UAAU,EAAE4C,MAAM,CAAClC,IAAI,CAACmC,sBAAW,CAAC,CAAC;gBACrCC,OAAO,EAAEC,0BAAe;gBACxBC,IAAI,EAAE;kBACJC,WAAW,EAAE;oBACXC,OAAO,EAAErC,GAAG,CAACsC,2BAA2B,IAAI,CAAC,CAACtC,GAAG,CAACuC,WAAW;oBAC7DA,WAAW,EAAEvC,GAAG,CAACsC,2BAA2B,GAAGE,oBAAS,GAAGxC,GAAG,CAACuC;kBACjE;gBACF;cACF,CAAC;cAEDvF,eAAG,CAACA,GAAG,6EAAA4D,MAAA,CACuEjB,eAAe,GAC3F/B,aACF,CAAC;cAAC,OAAA4C,QAAA,CAAAiC,MAAA,WAEKxD,SAAQ;YAAA;cAEXA,UAAQ,GAAG;gBACfE,UAAU,EAAE,GAAG;gBACf8C,OAAO,EAAES,0BAAe;gBACxBP,IAAI,EAAE;kBACJQ,KAAK,EAAE;gBACT;cACF,CAAC;cAAA,OAAAnC,QAAA,CAAAiC,MAAA,WAEMxD,UAAQ;YAAA;cAEXA,QAAQ,GAAG;gBACfE,UAAU,EAAE,GAAG;gBACf8C,OAAO,EAAES,0BAAe;gBACxBP,IAAI,EAAE;kBACJQ,KAAK,EAAE;gBACT;cACF,CAAC;cAAA,OAAAnC,QAAA,CAAAiC,MAAA,WAEMxD,QAAQ;YAAA;cAAAuB,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAoC,EAAA,GAAApC,QAAA;cAETL,SAAS,GAAAK,QAAA,CAAAoC,EAAA;cACTxC,aAAa,GAAG,IAAIyC,KAAK,+CAAAjC,MAAA,CAAAJ,QAAA,CAAAoC,EAAA,CAE/B,CAAC;cACD5F,eAAG,CAAC2F,KAAK,CAACvC,aAAa,EAAExC,aAAa,CAAC;cAAC4C,QAAA,CAAAE,IAAA;cAAA,OAClC,IAAAoC,iBAAU,EAAC,CAAC;YAAA;cACZzC,WAAW,GAAG,IAAAnB,8BAAuB,EAACiB,SAAS,EAAEvC,aAAa,CAAC;cAAA,OAAA4C,QAAA,CAAAiC,MAAA,WAE9DpC,WAAW;YAAA;YAAA;cAAA,OAAAG,QAAA,CAAAuC,IAAA;UAAA;QAAA,GAAArD,OAAA;MAAA,CAErB;MAAA,SAAAsD,4BAAAC,EAAA;QAAA,OAAA3D,4BAAA,CAAA4D,KAAA,OAAA5G,SAAA;MAAA;MAAA,OAAA0G,2BAAA;IAAA;EAAA;EAAA,OAAA/G,mBAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_Logger","_interopRequireDefault","require","_SDKConnector","_Utils","_constants","_types","_constants2","UcmBackendConnector","exports","webex","logger","useProdWebexApis","arguments","length","undefined","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","getWebex","setWebex","log","setLogger","level","UCM_CONNECTOR_FILE","userId","internal","device","orgId","_createClass2","key","value","getCallWaitingSetting","loggerContext","file","method","METHODS","GET_CALL_WAITING_SETTING","info","METHOD_START_MESSAGE","getMethodNotSupportedResponse","getDoNotDisturbSetting","GET_DO_NOT_DISTURB_SETTING","setDoNotDisturbSetting","SET_DO_NOT_DISTURB_SETTING","getCallForwardSetting","GET_CALL_FORWARD_SETTING","setCallForwardSetting","SET_CALL_FORWARD_SETTING","getVoicemailSetting","GET_VOICEMAIL_SETTING","setVoicemailSetting","SET_VOICEMAIL_SETTING","GET_METHOD_NOT_SUPPORTED_RESPONSE","response","serviceErrorCodeHandler","statusCode","_promise","resolve","_getCallForwardAlwaysSetting","_asyncToGenerator2","_regenerator","mark","_callee","directoryNumber","_this$webex","_this$webex$config","headers","webexApisUrl","requestOptions","resp","_ref","callForwarding","cfa","_response","_response2","errorInfo","errorStatus","_t","wrap","_context","prev","next","GET_CALL_FORWARD_ALWAYS_SETTING","concat","getAuthHeaders","sent","config","fedramp","WEBEX_API_CONFIG_FEDRAMP_URL","WEBEX_API_CONFIG_PROD_URL","WEBEX_API_CONFIG_INT_URL","uri","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","HTTP_METHODS","GET","request","body","always","find","item","dn","endsWith","e164Number","Number","STATUS_CODE","message","SUCCESS_MESSAGE","data","callSetting","enabled","destinationVoicemailEnabled","destination","VOICEMAIL","abrupt","FAILURE_MESSAGE","error","_stringify","uploadLogs","stop","getCallForwardAlwaysSetting","_x","apply","_getAuthHeaders","_callee2","_this$webex2","_this$webex2$config","_context2","credentials","getUserToken","authorization"],"sources":["UcmBackendConnector.ts"],"sourcesContent":["import log from '../Logger';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {serviceErrorCodeHandler, uploadLogs} from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n METHOD_START_MESSAGE,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n VOICEMAIL,\n WEBEX_API_CONFIG_INT_URL,\n WEBEX_API_CONFIG_PROD_URL,\n WEBEX_API_CONFIG_FEDRAMP_URL,\n} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {CF_ENDPOINT, METHODS, ORG_ENDPOINT, PEOPLE_ENDPOINT} from './constants';\nimport {\n CallForwardAlwaysSetting,\n CallForwardingSettingsUCM,\n CallSettingResponse,\n IUcmBackendConnector,\n LoggerInterface,\n} from './types';\n\n/**\n * This Connector class will implement child interface of ICallSettings and\n * has methods for the CCUC with UCM backend.\n */\nexport class UcmBackendConnector implements IUcmBackendConnector {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private userId: string;\n\n private orgId: string;\n\n private useProdWebexApis: boolean;\n\n /**\n * @param useProdWebexApis - default value is true\n */\n constructor(webex: WebexSDK, logger: LoggerInterface, useProdWebexApis = true) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n log.setLogger(logger.level, UCM_CONNECTOR_FILE);\n this.userId = this.webex.internal.device.userId;\n this.orgId = this.webex.internal.device.orgId;\n this.useProdWebexApis = useProdWebexApis;\n }\n\n // Removed header caching to align with review: fetch per request instead.\n\n /**\n * Reads call waiting setting at the backend.\n */\n public getCallWaitingSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_WAITING_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads DND setting at the backend.\n */\n public getDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates DND setting at the backend.\n */\n public setDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Call Forward setting at the backend.\n */\n public getCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Call Forward setting at the backend.\n */\n public setCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Voicemail setting at the backend.\n */\n public getVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Voicemail setting at the backend.\n */\n public setVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.SET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Returns a default error response for unsupported methods.\n */\n private getMethodNotSupportedResponse(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_METHOD_NOT_SUPPORTED_RESPONSE,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n const response = serviceErrorCodeHandler({statusCode: 501}, loggerContext);\n\n return Promise.resolve(response);\n }\n\n /**\n * Reads the Call Forwarding Always settings at the backend.\n * This will also check if CFA is set to Voicemail.\n * If CFA is set to destination, that will take precedence.\n * For UCM backend, relevant fields in the response are `enabled` & `destination`.\n *\n * @param directoryNumber - Directory number for which CFA needs to returned.\n */\n public async getCallForwardAlwaysSetting(directoryNumber?: string): Promise<CallSettingResponse> {\n const loggerContext = {\n file: UCM_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_ALWAYS_SETTING,\n };\n\n log.info(\n directoryNumber ? `${METHOD_START_MESSAGE} with ${directoryNumber}` : METHOD_START_MESSAGE,\n loggerContext\n );\n\n // Fetch auth headers per request (no caching) to ensure freshness.\n const headers = await this.getAuthHeaders();\n\n let webexApisUrl: string;\n if (this.webex?.config?.fedramp) {\n webexApisUrl = WEBEX_API_CONFIG_FEDRAMP_URL;\n } else {\n webexApisUrl = this.useProdWebexApis ? WEBEX_API_CONFIG_PROD_URL : WEBEX_API_CONFIG_INT_URL;\n }\n\n try {\n if (directoryNumber) {\n const requestOptions: WebexRequestPayload = {\n uri: `${webexApisUrl}/${PEOPLE_ENDPOINT}/${\n this.userId\n }/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n headers,\n };\n\n const resp = <WebexRequestPayload>await this.webex.request(requestOptions);\n\n log.log(`Response code: ${resp.statusCode}`, loggerContext);\n\n const {callForwarding} = resp.body as CallForwardingSettingsUCM;\n const cfa = callForwarding.always.find(\n (item) => item.dn.endsWith(directoryNumber) || item.e164Number.endsWith(directoryNumber)\n );\n\n if (cfa) {\n const response = {\n statusCode: Number(resp[STATUS_CODE]),\n message: SUCCESS_MESSAGE,\n data: {\n callSetting: {\n enabled: cfa.destinationVoicemailEnabled || !!cfa.destination,\n destination: cfa.destinationVoicemailEnabled ? VOICEMAIL : cfa.destination,\n } as CallForwardAlwaysSetting,\n },\n };\n\n log.log(\n `Successfully retrieved call forward always setting for directory number: ${directoryNumber}`,\n loggerContext\n );\n\n return response;\n }\n const response = {\n statusCode: 404,\n message: FAILURE_MESSAGE,\n data: {\n error: 'Directory Number is not assigned to the user',\n },\n };\n\n return response;\n }\n const response = {\n statusCode: 400,\n message: FAILURE_MESSAGE,\n data: {\n error: 'Directory Number is mandatory for UCM backend',\n },\n };\n\n return response;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n log.error(`Failed to get call forward always setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n private async getAuthHeaders(): Promise<Record<string, string>> {\n const headers: Record<string, string> = {};\n\n // Match behavior from WxCallBackendConnector:\n // Only add authorization for FedRAMP, else rely on implicit auth/session.\n // Note: Use lowercase 'authorization' to match SDK's auth interceptor check\n if (this.webex?.config?.fedramp) {\n headers.authorization = await this.webex.credentials.getUserToken();\n }\n\n return headers;\n }\n}\n"],"mappings":"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","ignoreList":[]}