@webex/calling 3.4.0-next.2 → 3.4.0-next.4
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/CallSettings/UcmBackendConnector.js +1 -1
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/constants.js +1 -3
- package/dist/CallSettings/constants.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +10 -16
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +1 -1
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/common/Utils.js +5 -3
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +1 -1
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js +5 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/module/CallSettings/UcmBackendConnector.js +5 -3
- package/dist/module/CallSettings/constants.js +0 -2
- package/dist/module/Contacts/ContactsClient.js +4 -5
- package/dist/module/common/Utils.js +4 -2
- package/dist/module/common/constants.js +4 -0
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/constants.d.ts +0 -2
- package/dist/types/CallSettings/constants.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/constants.d.ts +4 -0
- package/dist/types/common/constants.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -143,7 +143,7 @@ var UcmBackendConnector = exports.UcmBackendConnector = /*#__PURE__*/function ()
|
|
|
143
143
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
144
144
|
method: this.getCallForwardAlwaysSetting.name
|
|
145
145
|
};
|
|
146
|
-
webexApisUrl = this.useProdWebexApis ?
|
|
146
|
+
webexApisUrl = this.useProdWebexApis ? _constants.WEBEX_API_CONFIG_PROD_URL : _constants.WEBEX_API_CONFIG_INT_URL;
|
|
147
147
|
_context.prev = 2;
|
|
148
148
|
if (!directoryNumber) {
|
|
149
149
|
_context.next = 14;
|
|
@@ -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","getMethodNotSupportedResponse","getDoNotDisturbSetting","setDoNotDisturbSetting","getCallForwardSetting","setCallForwardSetting","getVoicemailSetting","setVoicemailSetting","response","serviceErrorCodeHandler","statusCode","file","method","name","_promise","resolve","_getCallForwardAlwaysSetting","_asyncToGenerator2","_regenerator","mark","_callee","directoryNumber","loggerContext","webexApisUrl","resp","_ref","callForwarding","cfa","_response","_response2","errorInfo","errorStatus","wrap","_callee$","_context","prev","next","getCallForwardAlwaysSetting","WEBEX_APIS_PROD_URL","WEBEX_APIS_INT_URL","request","uri","concat","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","stop","_x","apply"],"sources":["UcmBackendConnector.ts"],"sourcesContent":["import log from '../Logger';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {serviceErrorCodeHandler} from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n VOICEMAIL,\n} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {\n CF_ENDPOINT,\n ORG_ENDPOINT,\n PEOPLE_ENDPOINT,\n WEBEX_APIS_INT_URL,\n WEBEX_APIS_PROD_URL,\n} 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 return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads DND setting at the backend.\n */\n public getDoNotDisturbSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates DND setting at the backend.\n */\n public setDoNotDisturbSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Call Forward setting at the backend.\n */\n public getCallForwardSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Call Forward setting at the backend.\n */\n public setCallForwardSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Voicemail setting at the backend.\n */\n public getVoicemailSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Voicemail setting at the backend.\n */\n public setVoicemailSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Returns a default error response for unsupported methods.\n */\n private getMethodNotSupportedResponse(): Promise<CallSettingResponse> {\n const response = serviceErrorCodeHandler(\n {statusCode: 501},\n {file: UCM_CONNECTOR_FILE, method: this.getMethodNotSupportedResponse.name}\n );\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: this.getCallForwardAlwaysSetting.name,\n };\n\n const webexApisUrl = this.useProdWebexApis ? WEBEX_APIS_PROD_URL : WEBEX_APIS_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 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 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 errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n}\n"],"mappings":"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"}
|
|
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","getMethodNotSupportedResponse","getDoNotDisturbSetting","setDoNotDisturbSetting","getCallForwardSetting","setCallForwardSetting","getVoicemailSetting","setVoicemailSetting","response","serviceErrorCodeHandler","statusCode","file","method","name","_promise","resolve","_getCallForwardAlwaysSetting","_asyncToGenerator2","_regenerator","mark","_callee","directoryNumber","loggerContext","webexApisUrl","resp","_ref","callForwarding","cfa","_response","_response2","errorInfo","errorStatus","wrap","_callee$","_context","prev","next","getCallForwardAlwaysSetting","WEBEX_API_CONFIG_PROD_URL","WEBEX_API_CONFIG_INT_URL","request","uri","concat","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","stop","_x","apply"],"sources":["UcmBackendConnector.ts"],"sourcesContent":["import log from '../Logger';\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {serviceErrorCodeHandler} from '../common/Utils';\nimport {\n FAILURE_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, 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 return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads DND setting at the backend.\n */\n public getDoNotDisturbSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates DND setting at the backend.\n */\n public setDoNotDisturbSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Call Forward setting at the backend.\n */\n public getCallForwardSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Call Forward setting at the backend.\n */\n public setCallForwardSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Reads Voicemail setting at the backend.\n */\n public getVoicemailSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Updates Voicemail setting at the backend.\n */\n public setVoicemailSetting(): Promise<CallSettingResponse> {\n return this.getMethodNotSupportedResponse();\n }\n\n /**\n * Returns a default error response for unsupported methods.\n */\n private getMethodNotSupportedResponse(): Promise<CallSettingResponse> {\n const response = serviceErrorCodeHandler(\n {statusCode: 501},\n {file: UCM_CONNECTOR_FILE, method: this.getMethodNotSupportedResponse.name}\n );\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: this.getCallForwardAlwaysSetting.name,\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 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 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 errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
45
45
|
}]
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
var callForwardingUri = "".concat(
|
|
48
|
+
var callForwardingUri = "".concat(_constants.WEBEX_API_CONFIG_INT_URL, "/").concat(_constants2.PEOPLE_ENDPOINT, "/").concat(userId, "/").concat(_constants2.CF_ENDPOINT.toLowerCase(), "?").concat(_constants2.ORG_ENDPOINT, "=").concat(orgId);
|
|
49
49
|
beforeAll(function () {
|
|
50
50
|
callSettingsClient = new _UcmBackendConnector.UcmBackendConnector(webex, {
|
|
51
51
|
level: _types.LOGGER.INFO
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","utils","_interopRequireWildcard","_constants","_testUtil","_types2","_UcmBackendConnector","_constants2","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","describe","webex","getTestUtilsWebex","userId","orgId","callSettingsClient","callForwardPayload","callForwarding","always","dn","destination","destinationVoicemailEnabled","e164Number","callForwardingUri","concat","WEBEX_APIS_INT_URL","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","beforeAll","UcmBackendConnector","level","LOGGER","INFO","beforeEach","responsePayload","statusCode","body","request","mockResolvedValue","it","_asyncToGenerator2","_regenerator","mark","_callee","response","callForwardSetting","wrap","_callee$","_context","prev","next","getCallForwardAlwaysSetting","sent","data","callSetting","expect","toEqual","message","SUCCESS_MESSAGE","enabled","toBeCalledOnceWith","method","HTTP_METHODS","GET","uri","stop","_callee2","_callee2$","_context2","_callee3","_callee3$","_context3","toBeFalsy","_callee4","_callee4$","_context4","_callee5","serviceErrorCodeHandlerSpy","_callee5$","_context5","mockClear","mockRejectedValue","jest","spyOn","FAILURE_MESSAGE","error","file","UCM_CONNECTOR_FILE","name","_callee6","_callee6$","_context6","_callee7","_callee7$","_context7","not","toBeCalled","unsupportedMethods","each","_ref8","_callee8","methodName","_callee8$","_context8","_x","apply","arguments"],"sources":["UcmBackendConnector.test.ts"],"sourcesContent":["import {LOGGER} from '../Logger/types';\nimport * as utils from '../common/Utils';\nimport {FAILURE_MESSAGE, SUCCESS_MESSAGE, UCM_CONNECTOR_FILE} from '../common/constants';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {CF_ENDPOINT, ORG_ENDPOINT, PEOPLE_ENDPOINT, WEBEX_APIS_INT_URL} from './constants';\nimport {CallForwardAlwaysSetting, CallForwardingSettingsUCM, IUcmBackendConnector} from './types';\n\ndescribe('Call Settings Client Tests for UcmBackendConnector', () => {\n const webex = getTestUtilsWebex();\n\n const userId = '8a67806f-fc4d-446b-a131-31e71ea5b0e9';\n const orgId = '1704d30d-a131-4bc7-9449-948487643793';\n\n describe('Call Forward Always test', () => {\n let callSettingsClient: IUcmBackendConnector;\n const callForwardPayload: CallForwardingSettingsUCM = {\n callForwarding: {\n always: [\n {\n dn: '8001',\n destination: '8004',\n destinationVoicemailEnabled: false,\n e164Number: '+14922999903',\n },\n {\n dn: '8002',\n destinationVoicemailEnabled: true,\n e164Number: '',\n },\n {\n dn: '8003',\n destinationVoicemailEnabled: false,\n e164Number: '',\n },\n {\n dn: '8000',\n destination: '8007',\n destinationVoicemailEnabled: false,\n e164Number: '8006',\n },\n ],\n },\n };\n\n const callForwardingUri = `${WEBEX_APIS_INT_URL}/${PEOPLE_ENDPOINT}/${userId}/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${orgId}`;\n\n beforeAll(() => {\n callSettingsClient = new UcmBackendConnector(webex, {level: LOGGER.INFO}, false);\n });\n\n beforeEach(() => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: callForwardPayload,\n });\n\n webex.request.mockResolvedValue(responsePayload);\n });\n\n it('Success: Get Call Forward Always setting when set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8001');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8004');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Success: Get Call Forward Always setting when set to voicemail', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('VOICEMAIL');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Success: Get Call Forward Always setting when not set', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8003');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(false);\n expect(callForwardSetting.destination).toBeFalsy();\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Success: Get Call Forward Always setting when directory num matching with e16number and set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8006');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8007');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Failure: Get Call Forward Always setting fails', async () => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n });\n\n webex.request.mockClear();\n webex.request.mockRejectedValue(responsePayload);\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n expect(response.statusCode).toEqual(503);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Unable to establish a connection with the server');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(responsePayload, {\n file: UCM_CONNECTOR_FILE,\n method: callSettingsClient.getCallForwardAlwaysSetting.name,\n });\n });\n\n it('Failure: Get Call Forward Always setting fails - wrong directoryNumber', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8005');\n\n expect(response.statusCode).toEqual(404);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is not assigned to the user');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Failure: Get Call Forward Always setting fails when no directoryNumberProvided', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting();\n\n expect(response.statusCode).toEqual(400);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is mandatory for UCM backend');\n expect(webex.request).not.toBeCalled();\n });\n\n describe('Unsupported methods return failure', () => {\n const unsupportedMethods: string[] = [\n 'getCallWaitingSetting',\n 'getDoNotDisturbSetting',\n 'setDoNotDisturbSetting',\n 'getCallForwardSetting',\n 'setCallForwardSetting',\n 'getVoicemailSetting',\n 'setVoicemailSetting',\n ];\n\n it.each(unsupportedMethods)('%s', async (methodName) => {\n const response = await callSettingsClient[methodName]();\n\n expect(response.statusCode).toEqual(501);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Method is not implemented at the backend');\n expect(webex.request).not.toBeCalled();\n });\n });\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_types","require","utils","_interopRequireWildcard","_constants","_testUtil","_types2","_UcmBackendConnector","_constants2","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","describe","webex","getTestUtilsWebex","userId","orgId","callSettingsClient","callForwardPayload","callForwarding","always","dn","destination","destinationVoicemailEnabled","e164Number","callForwardingUri","concat","WEBEX_API_CONFIG_INT_URL","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","beforeAll","UcmBackendConnector","level","LOGGER","INFO","beforeEach","responsePayload","statusCode","body","request","mockResolvedValue","it","_asyncToGenerator2","_regenerator","mark","_callee","response","callForwardSetting","wrap","_callee$","_context","prev","next","getCallForwardAlwaysSetting","sent","data","callSetting","expect","toEqual","message","SUCCESS_MESSAGE","enabled","toBeCalledOnceWith","method","HTTP_METHODS","GET","uri","stop","_callee2","_callee2$","_context2","_callee3","_callee3$","_context3","toBeFalsy","_callee4","_callee4$","_context4","_callee5","serviceErrorCodeHandlerSpy","_callee5$","_context5","mockClear","mockRejectedValue","jest","spyOn","FAILURE_MESSAGE","error","file","UCM_CONNECTOR_FILE","name","_callee6","_callee6$","_context6","_callee7","_callee7$","_context7","not","toBeCalled","unsupportedMethods","each","_ref8","_callee8","methodName","_callee8$","_context8","_x","apply","arguments"],"sources":["UcmBackendConnector.test.ts"],"sourcesContent":["import {LOGGER} from '../Logger/types';\nimport * as utils from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n WEBEX_API_CONFIG_INT_URL,\n} from '../common/constants';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {CF_ENDPOINT, ORG_ENDPOINT, PEOPLE_ENDPOINT} from './constants';\nimport {CallForwardAlwaysSetting, CallForwardingSettingsUCM, IUcmBackendConnector} from './types';\n\ndescribe('Call Settings Client Tests for UcmBackendConnector', () => {\n const webex = getTestUtilsWebex();\n\n const userId = '8a67806f-fc4d-446b-a131-31e71ea5b0e9';\n const orgId = '1704d30d-a131-4bc7-9449-948487643793';\n\n describe('Call Forward Always test', () => {\n let callSettingsClient: IUcmBackendConnector;\n const callForwardPayload: CallForwardingSettingsUCM = {\n callForwarding: {\n always: [\n {\n dn: '8001',\n destination: '8004',\n destinationVoicemailEnabled: false,\n e164Number: '+14922999903',\n },\n {\n dn: '8002',\n destinationVoicemailEnabled: true,\n e164Number: '',\n },\n {\n dn: '8003',\n destinationVoicemailEnabled: false,\n e164Number: '',\n },\n {\n dn: '8000',\n destination: '8007',\n destinationVoicemailEnabled: false,\n e164Number: '8006',\n },\n ],\n },\n };\n\n const callForwardingUri = `${WEBEX_API_CONFIG_INT_URL}/${PEOPLE_ENDPOINT}/${userId}/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${orgId}`;\n\n beforeAll(() => {\n callSettingsClient = new UcmBackendConnector(webex, {level: LOGGER.INFO}, false);\n });\n\n beforeEach(() => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: callForwardPayload,\n });\n\n webex.request.mockResolvedValue(responsePayload);\n });\n\n it('Success: Get Call Forward Always setting when set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8001');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8004');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Success: Get Call Forward Always setting when set to voicemail', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('VOICEMAIL');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Success: Get Call Forward Always setting when not set', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8003');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(false);\n expect(callForwardSetting.destination).toBeFalsy();\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Success: Get Call Forward Always setting when directory num matching with e16number and set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8006');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8007');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Failure: Get Call Forward Always setting fails', async () => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n });\n\n webex.request.mockClear();\n webex.request.mockRejectedValue(responsePayload);\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n expect(response.statusCode).toEqual(503);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Unable to establish a connection with the server');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(responsePayload, {\n file: UCM_CONNECTOR_FILE,\n method: callSettingsClient.getCallForwardAlwaysSetting.name,\n });\n });\n\n it('Failure: Get Call Forward Always setting fails - wrong directoryNumber', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8005');\n\n expect(response.statusCode).toEqual(404);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is not assigned to the user');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n });\n\n it('Failure: Get Call Forward Always setting fails when no directoryNumberProvided', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting();\n\n expect(response.statusCode).toEqual(400);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is mandatory for UCM backend');\n expect(webex.request).not.toBeCalled();\n });\n\n describe('Unsupported methods return failure', () => {\n const unsupportedMethods: string[] = [\n 'getCallWaitingSetting',\n 'getDoNotDisturbSetting',\n 'setDoNotDisturbSetting',\n 'getCallForwardSetting',\n 'setCallForwardSetting',\n 'getVoicemailSetting',\n 'setVoicemailSetting',\n ];\n\n it.each(unsupportedMethods)('%s', async (methodName) => {\n const response = await callSettingsClient[methodName]();\n\n expect(response.statusCode).toEqual(501);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Method is not implemented at the backend');\n expect(webex.request).not.toBeCalled();\n });\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
|
|
|
4
4
|
_Object$defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.XSI_VERSION = exports.
|
|
7
|
+
exports.XSI_VERSION = exports.VM_ENDPOINT = exports.USER_ENDPOINT = exports.PEOPLE_ENDPOINT = exports.ORG_ENDPOINT = exports.DND_ENDPOINT = exports.CF_ENDPOINT = exports.CALL_WAITING_ENDPOINT = exports.CALL_SETTINGS_FILE = void 0;
|
|
8
8
|
var CALL_SETTINGS_FILE = exports.CALL_SETTINGS_FILE = 'CallSettings';
|
|
9
9
|
var PEOPLE_ENDPOINT = exports.PEOPLE_ENDPOINT = 'people';
|
|
10
10
|
var USER_ENDPOINT = exports.USER_ENDPOINT = 'user';
|
|
@@ -14,6 +14,4 @@ var CF_ENDPOINT = exports.CF_ENDPOINT = 'features/callForwarding';
|
|
|
14
14
|
var VM_ENDPOINT = exports.VM_ENDPOINT = 'features/voicemail';
|
|
15
15
|
var CALL_WAITING_ENDPOINT = exports.CALL_WAITING_ENDPOINT = 'CallWaiting';
|
|
16
16
|
var XSI_VERSION = exports.XSI_VERSION = 'v2.0';
|
|
17
|
-
var WEBEX_APIS_INT_URL = exports.WEBEX_APIS_INT_URL = 'https://integration.webexapis.com/v1/uc/config';
|
|
18
|
-
var WEBEX_APIS_PROD_URL = exports.WEBEX_APIS_PROD_URL = 'https://webexapis.com/v1/uc/config';
|
|
19
17
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CALL_SETTINGS_FILE","exports","PEOPLE_ENDPOINT","USER_ENDPOINT","ORG_ENDPOINT","DND_ENDPOINT","CF_ENDPOINT","VM_ENDPOINT","CALL_WAITING_ENDPOINT","XSI_VERSION"
|
|
1
|
+
{"version":3,"names":["CALL_SETTINGS_FILE","exports","PEOPLE_ENDPOINT","USER_ENDPOINT","ORG_ENDPOINT","DND_ENDPOINT","CF_ENDPOINT","VM_ENDPOINT","CALL_WAITING_ENDPOINT","XSI_VERSION"],"sources":["constants.ts"],"sourcesContent":["export const CALL_SETTINGS_FILE = 'CallSettings';\nexport const PEOPLE_ENDPOINT = 'people';\nexport const USER_ENDPOINT = 'user';\nexport const ORG_ENDPOINT = 'orgId';\nexport const DND_ENDPOINT = 'features/doNotDisturb';\nexport const CF_ENDPOINT = 'features/callForwarding';\nexport const VM_ENDPOINT = 'features/voicemail';\nexport const CALL_WAITING_ENDPOINT = 'CallWaiting';\nexport const XSI_VERSION = 'v2.0';\n"],"mappings":";;;;;;;AAAO,IAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,cAAc;AACzC,IAAME,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG,QAAQ;AAChC,IAAMC,aAAa,GAAAF,OAAA,CAAAE,aAAA,GAAG,MAAM;AAC5B,IAAMC,YAAY,GAAAH,OAAA,CAAAG,YAAA,GAAG,OAAO;AAC5B,IAAMC,YAAY,GAAAJ,OAAA,CAAAI,YAAA,GAAG,uBAAuB;AAC5C,IAAMC,WAAW,GAAAL,OAAA,CAAAK,WAAA,GAAG,yBAAyB;AAC7C,IAAMC,WAAW,GAAAN,OAAA,CAAAM,WAAA,GAAG,oBAAoB;AACxC,IAAMC,qBAAqB,GAAAP,OAAA,CAAAO,qBAAA,GAAG,aAAa;AAC3C,IAAMC,WAAW,GAAAR,OAAA,CAAAQ,WAAA,GAAG,MAAM"}
|
|
@@ -380,17 +380,14 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
380
380
|
};
|
|
381
381
|
var finalContactList = [];
|
|
382
382
|
try {
|
|
383
|
-
var
|
|
384
|
-
var _loop = function _loop(n) {
|
|
383
|
+
for (var n = 0; n < inputList.Resources.length; n += 1) {
|
|
385
384
|
var _filteredContact$name, _filteredContact$name2, _filteredContact$SCIM, _filteredContact$SCIM2, _filteredContact$SCIM3;
|
|
386
|
-
var filteredContact = inputList.Resources
|
|
387
|
-
return item.id === contactList[n];
|
|
388
|
-
})[0];
|
|
385
|
+
var filteredContact = inputList.Resources[n];
|
|
389
386
|
var displayName = filteredContact.displayName,
|
|
390
387
|
emails = filteredContact.emails,
|
|
391
388
|
phoneNumbers = filteredContact.phoneNumbers,
|
|
392
389
|
photos = filteredContact.photos;
|
|
393
|
-
var sipAddresses;
|
|
390
|
+
var sipAddresses = void 0;
|
|
394
391
|
if (filteredContact[_constants.SCIM_WEBEXIDENTITY_USER]) {
|
|
395
392
|
sipAddresses = filteredContact[_constants.SCIM_WEBEXIDENTITY_USER].sipAddresses;
|
|
396
393
|
}
|
|
@@ -399,16 +396,16 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
399
396
|
var manager = (_filteredContact$SCIM = filteredContact[_constants.SCIM_ENTERPRISE_USER]) === null || _filteredContact$SCIM === void 0 ? void 0 : (_filteredContact$SCIM2 = _filteredContact$SCIM.manager) === null || _filteredContact$SCIM2 === void 0 ? void 0 : _filteredContact$SCIM2.displayName;
|
|
400
397
|
var department = (_filteredContact$SCIM3 = filteredContact[_constants.SCIM_ENTERPRISE_USER]) === null || _filteredContact$SCIM3 === void 0 ? void 0 : _filteredContact$SCIM3.department;
|
|
401
398
|
var avatarURL = photos !== null && photos !== void 0 && photos.length ? photos[0].value : '';
|
|
402
|
-
var _contactsDataMap$
|
|
403
|
-
contactType = _contactsDataMap$
|
|
404
|
-
avatarUrlDomain = _contactsDataMap$
|
|
405
|
-
encryptionKeyUrl = _contactsDataMap$
|
|
406
|
-
ownerId = _contactsDataMap$
|
|
407
|
-
groups = _contactsDataMap$
|
|
399
|
+
var _contactsDataMap$inpu = contactsDataMap[inputList.Resources[n].id],
|
|
400
|
+
contactType = _contactsDataMap$inpu.contactType,
|
|
401
|
+
avatarUrlDomain = _contactsDataMap$inpu.avatarUrlDomain,
|
|
402
|
+
encryptionKeyUrl = _contactsDataMap$inpu.encryptionKeyUrl,
|
|
403
|
+
ownerId = _contactsDataMap$inpu.ownerId,
|
|
404
|
+
groups = _contactsDataMap$inpu.groups;
|
|
408
405
|
var cloudContact = {
|
|
409
406
|
avatarUrlDomain: avatarUrlDomain,
|
|
410
407
|
avatarURL: avatarURL,
|
|
411
|
-
contactId:
|
|
408
|
+
contactId: inputList.Resources[n].id,
|
|
412
409
|
contactType: contactType,
|
|
413
410
|
department: department,
|
|
414
411
|
displayName: displayName,
|
|
@@ -423,9 +420,6 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
|
|
|
423
420
|
sipAddresses: sipAddresses
|
|
424
421
|
};
|
|
425
422
|
finalContactList.push(cloudContact);
|
|
426
|
-
};
|
|
427
|
-
for (var n = 0; n < contactList.length; n += 1) {
|
|
428
|
-
_loop(n);
|
|
429
423
|
}
|
|
430
424
|
} catch (error) {
|
|
431
425
|
_Logger.default.warn('Error occurred while parsing resolved contacts', loggerContext);
|
|
@@ -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","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","encryptionKeyUrl","groups","undefined","contacts","defaultGroupId","log","setLogger","level","CONTACTS_FILE","_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","_ref10","_callee6$","_context6","_x10","_x9","_ref11","_ref12","decryptContact","_x8","resolveCloudContacts","contactsDataMap","inputList","loggerContext","file","method","finalContactList","contactList","_keys","_loop","n","_filteredContact$name","_filteredContact$name2","_filteredContact$SCIM","_filteredContact$SCIM2","_filteredContact$SCIM3","filteredContact","Resources","item","id","displayName","emails","phoneNumbers","photos","sipAddresses","SCIM_WEBEXIDENTITY_USER","firstName","name","givenName","lastName","familyName","manager","SCIM_ENTERPRISE_USER","department","avatarURL","_contactsDataMap$cont","contactType","avatarUrlDomain","ownerId","cloudContact","contactId","error","warn","_getContacts","_callee11","_this5","cloudContactsMap","response","responseBody","contactIdList","query","result","resolvedContacts","contactResponse","errorInfo","errorStatus","_callee11$","_context11","request","uri","concat","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","body","Error","_ref13","_callee9","_callee9$","_context9","ContactType","CUSTOM","CLOUD","_x11","SCIM_ID_FILTER","join","OR","scimQuery","_ref14","_callee10","group","idx","_callee10$","_context10","_x12","_x13","statusCode","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","serviceErrorCodeHandler","getContacts","_createNewEncryptionKeyUrl","_callee12","unboundedKeyUri","unboundedKeys","_callee12$","_context12","createNewEncryptionKeyUrl","info","kms","createUnboundKeys","count","createResource","keyUris","_fetchEncryptionKeyUrl","_callee13","_response$data$group","_response$data$group2","_callee13$","_context13","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee14","i","_callee14$","_context14","fetchDefaultGroup","_createContactGroup","_callee15","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_this$groups","_callee15$","_context15","find","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x14","_x15","_x16","_deleteContactGroup","_callee16","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee16$","_context16","deleteContactGroup","DELETE","findIndex","splice","_x17","_createContact","_callee17","contactInfo","requestBody","_encryptedContact","newContact","res","resolvedContact","_this$contacts","_this$contacts2","_callee17$","_context17","createContact","_x18","_deleteContact","_callee18","_this$contacts3","contactToDelete","_this$contacts4","_callee18$","_context18","deleteContact","_x19","getSDKConnector","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport {\n FAILURE_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_FILE,\n CONTACTS_SCHEMA,\n CONTACT_FILTER,\n DEFAULT_GROUP_NAME,\n ENCRYPT_FILTER,\n GROUP_FILTER,\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} 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_FILE);\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_FILE,\n method: 'resolveCloudContacts',\n };\n const finalContactList: Contact[] = [];\n\n try {\n const contactList = Object.keys(contactsDataMap);\n for (let n = 0; n < contactList.length; n += 1) {\n const filteredContact = inputList.Resources.filter((item) => item.id === contactList[n])[0];\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[contactList[n]];\n\n const cloudContact = {\n avatarUrlDomain,\n avatarURL,\n contactId: contactList[n],\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 };\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_FILE,\n method: 'getContacts',\n };\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 const responseBody = response.body as ContactList;\n\n if (!responseBody) {\n throw new Error(`${response}`);\n }\n\n const {contacts, groups} = responseBody;\n\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 // Resolve cloud contacts\n if (Object.keys(cloudContactsMap).length) {\n const contactIdList = Object.keys(cloudContactsMap);\n const query = contactIdList.map((item) => `${SCIM_ID_FILTER} \"${item}\"`).join(OR);\n const result = await scimQuery(query);\n const resolvedContacts = this.resolveCloudContacts(\n cloudContactsMap,\n result.body as SCIMListResponse\n );\n if (resolvedContacts) {\n resolvedContacts.map((item) => contactList.push(item));\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 return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * 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_FILE,\n method: this.createNewEncryptionKeyUrl.name,\n };\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 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.info(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\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 }\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 if (this.defaultGroupId) {\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\n return this.defaultGroupId;\n }\n }\n }\n\n log.info('No default group found.', {\n file: CONTACTS_FILE,\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 return group.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_FILE,\n method: this.createContactGroup.name,\n };\n\n log.info(`Creating contact group ${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 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\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Unable to create contact group.', loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\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_FILE,\n method: this.deleteContactGroup.name,\n };\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 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 return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact group ${groupId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\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_FILE,\n method: this.createContact.name,\n };\n\n log.info(`Request to create contact: 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 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\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Failed to create contact.', {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n });\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\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_FILE,\n method: this.deleteContact.name,\n };\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 return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact ${contactId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\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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"}
|
|
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_FILE","_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","_ref10","_callee6$","_context6","_x10","_x9","_ref11","_ref12","decryptContact","_x8","resolveCloudContacts","contactsDataMap","inputList","loggerContext","file","method","finalContactList","n","Resources","_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","id","contactType","avatarUrlDomain","ownerId","cloudContact","contactId","error","warn","_getContacts","_callee11","_this5","contactList","cloudContactsMap","response","responseBody","contactIdList","query","result","resolvedContacts","contactResponse","errorInfo","errorStatus","_callee11$","_context11","request","uri","concat","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","body","Error","_ref13","_callee9","_callee9$","_context9","ContactType","CUSTOM","CLOUD","_x11","_keys","item","SCIM_ID_FILTER","join","OR","scimQuery","_ref14","_callee10","group","idx","_callee10$","_context10","_x12","_x13","statusCode","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","serviceErrorCodeHandler","getContacts","_createNewEncryptionKeyUrl","_callee12","unboundedKeyUri","unboundedKeys","_callee12$","_context12","createNewEncryptionKeyUrl","info","kms","createUnboundKeys","count","createResource","keyUris","_fetchEncryptionKeyUrl","_callee13","_response$data$group","_response$data$group2","_callee13$","_context13","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee14","i","_callee14$","_context14","fetchDefaultGroup","_createContactGroup","_callee15","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_this$groups","_callee15$","_context15","find","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x14","_x15","_x16","_deleteContactGroup","_callee16","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee16$","_context16","deleteContactGroup","DELETE","findIndex","splice","_x17","_createContact","_callee17","contactInfo","requestBody","_encryptedContact","newContact","res","resolvedContact","_this$contacts","_this$contacts2","_callee17$","_context17","createContact","_x18","_deleteContact","_callee18","_this$contacts3","contactToDelete","_this$contacts4","_callee18$","_context18","deleteContact","_x19","getSDKConnector","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport {\n FAILURE_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_FILE,\n CONTACTS_SCHEMA,\n CONTACT_FILTER,\n DEFAULT_GROUP_NAME,\n ENCRYPT_FILTER,\n GROUP_FILTER,\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} 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_FILE);\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_FILE,\n method: 'resolveCloudContacts',\n };\n const finalContactList: Contact[] = [];\n\n try {\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 };\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_FILE,\n method: 'getContacts',\n };\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 const responseBody = response.body as ContactList;\n\n if (!responseBody) {\n throw new Error(`${response}`);\n }\n\n const {contacts, groups} = responseBody;\n\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 // Resolve cloud contacts\n if (Object.keys(cloudContactsMap).length) {\n const contactIdList = Object.keys(cloudContactsMap);\n const query = contactIdList.map((item) => `${SCIM_ID_FILTER} \"${item}\"`).join(OR);\n const result = await scimQuery(query);\n const resolvedContacts = this.resolveCloudContacts(\n cloudContactsMap,\n result.body as SCIMListResponse\n );\n if (resolvedContacts) {\n resolvedContacts.map((item) => contactList.push(item));\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 return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * 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_FILE,\n method: this.createNewEncryptionKeyUrl.name,\n };\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 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.info(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\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 }\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 if (this.defaultGroupId) {\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\n return this.defaultGroupId;\n }\n }\n }\n\n log.info('No default group found.', {\n file: CONTACTS_FILE,\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 return group.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_FILE,\n method: this.createContactGroup.name,\n };\n\n log.info(`Creating contact group ${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 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\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Unable to create contact group.', loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\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_FILE,\n method: this.deleteContactGroup.name,\n };\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 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 return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact group ${groupId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\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_FILE,\n method: this.createContact.name,\n };\n\n log.info(`Request to create contact: 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 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\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Failed to create contact.', {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n });\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\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_FILE,\n method: this.deleteContact.name,\n };\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 return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact ${contactId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\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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"}
|
|
@@ -32,7 +32,7 @@ describe('ContactClient Tests', function () {
|
|
|
32
32
|
|
|
33
33
|
// eslint-disable-next-line no-underscore-dangle
|
|
34
34
|
var contactServiceUrl = "".concat(webex.internal.services._serviceUrls.contactsService, "/").concat(_constants2.ENCRYPT_FILTER, "/").concat(_constants2.USERS, "/").concat(_constants2.CONTACT_FILTER);
|
|
35
|
-
var scimUrl = "".concat(
|
|
35
|
+
var scimUrl = "".concat(_constants.WEBEX_API_BTS, "/").concat(_constants.IDENTITY_ENDPOINT_RESOURCE, "/").concat(_constants.SCIM_ENDPOINT_RESOURCE, "/").concat(webex.internal.device.orgId, "/").concat(_constants.SCIM_USER_FILTER, "id%20eq%20%22801bb994-343b-4f6b-97ae-d13c91d4b877%22");
|
|
36
36
|
// eslint-disable-next-line no-underscore-dangle
|
|
37
37
|
var contactServiceGroupUrl = "".concat(webex.internal.services._serviceUrls.contactsService, "/").concat(_constants2.ENCRYPT_FILTER, "/").concat(_constants2.USERS, "/").concat(_constants2.GROUP_FILTER);
|
|
38
38
|
var serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');
|