@webex/calling 3.10.0-next.1 → 3.10.0-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallHistory/CallHistory.js +26 -20
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +109 -0
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +2 -1
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +160 -205
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +152 -290
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +14 -14
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +348 -258
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +8 -5
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Events/impl/index.js +1 -2
- package/dist/Events/impl/index.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +14 -12
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +2 -1
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/common/testUtil.js +2 -1
- package/dist/common/testUtil.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +7 -3
- package/dist/module/CallSettings/WxCallBackendConnector.js +3 -1
- package/dist/module/CallingClient/CallingClient.js +83 -121
- package/dist/module/CallingClient/calling/call.js +5 -5
- package/dist/module/Contacts/ContactsClient.js +9 -5
- package/dist/module/Events/impl/index.js +1 -2
- package/dist/module/Voicemail/BroadworksBackendConnector.js +3 -1
- package/dist/module/Voicemail/UcmBackendConnector.js +2 -1
- package/dist/module/common/testUtil.js +1 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +1 -0
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Events/impl/index.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +10 -0
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +1 -0
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","_testUtil","_types2","_CallHistory","_callHistoryFixtures","_types3","_constants","utils","_interopRequireWildcard","_Logger","_interopRequireDefault","_constants2","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","webex","getTestUtilsWebex","serviceErrorCodeHandlerSpy","uploadLogsSpy","describe","callHistory","infoSpy","jest","spyOn","log","mockImplementation","logSpy","errorSpy","beforeAll","CallHistory","level","LOGGER","INFO","mockResolvedValue","it","_asyncToGenerator2","_regenerator","mark","_callee","callHistoryPayload","response","wrap","_callee$","_context","prev","next","mockCallHistoryBody","request","getCallHistoryData","SORT","DEFAULT","SORT_BY","sent","expect","statusCode","toBe","message","toHaveBeenCalled","not","toHaveBeenCalledWith","file","CALL_HISTORY_FILE","method","METHODS","GET_CALL_HISTORY_DATA","stringContaining","stop","_callee2","failurePayload","_callee2$","_context2","mockRejectedValue","ASC","START_TIME","concat","_stringify","toHaveBeenCalledTimes","_callee3","_callee3$","_context3","_callee4","responseDetails","_callee4$","_context4","sortedCallHistory","body","data","userSessions","toEqual","mockOn","internal","mercury","on","beforeEach","createCallHistoryClient","done","COMMON_EVENT_KEYS","CALL_HISTORY_USER_SESSION_INFO","event","MOCK_SESSION_EVENT","mock","calls","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","MOCK_SESSION_EVENT_LEGACY","CALL_SESSION_EVENT_LEGACY","_callee5","_callee5$","_context5","_promise","resolve","CALL_HISTORY_USER_VIEWED_SESSIONS","MOCK_SESSION_EVENT_VIEWED","CALL_SESSION_EVENT_VIEWED","_callee6","_callee6$","_context6","CALL_HISTORY_USER_SESSIONS_DELETED","MOCK_SESSION_EVENT_DELETED","CALL_SESSION_EVENT_DELETED","methodDetails","UPDATE_MISSED_CALLS","afterEach","clearAllMocks","_callee7","_callee7$","_context7","global","fetch","fn","status","ok","json","MOCK_UPDATE_MISSED_CALL_RESPONSE","_callee8","endTimeSessionIds","convertedEndTimeSessionIds","_callee8$","_context8","endTime","sessionId","updateMissedCalls","map","session","Date","getTime","t0","t1","janusSetReadStateUrl","t2","HTTP_METHODS","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","t8","headers","toBeCalledOnceWith","METHOD_START_MESSAGE","_callee9","_callee9$","_context9","toStrictEqual","ERROR_DETAILS_400","toBeCalledWith","_callee0","_callee0$","_context0","ERROR_DETAILS_401","_callee1","ucmLinesAPIPayload","_callee1$","_context1","MOCK_LINES_API_CALL_RESPONSE","FETCH_UCM_LINES_DATA","_callee10","_callee10$","_context10","error","_callee11","fetchUCMLinesDataSpy","mockCallHistoryPayload","_callee11$","_context11","mockReturnValue","CALLING_BACKEND","UCM","MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER","self","ucmLineNumber","_callee12","_callee12$","_context12","MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA","MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER","cucmDN","toBeDefined","undefined","_callee13","_callee13$","_context13","_callee14","_callee14$","_context14","WXC","DELETE_CALL_HISTORY_RECORDS","_callee15","_callee15$","_context15","MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE","_callee16","deleteSessionIds","_callee16$","_context16","deleteCallHistoryRecords","janusMarkAsDeletedUrl","_callee17","_callee17$","_context17","_callee18","_callee18$","_context18","_callee19","_callee19$","_context19","MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE"],"sources":["CallHistory.test.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable dot-notation */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport {LOGGER} from '../Logger/types';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {CALLING_BACKEND, HTTP_METHODS, SORT, SORT_BY, WebexRequestPayload} from '../common/types';\nimport {CallHistory, createCallHistoryClient} from './CallHistory';\nimport {ICallHistory} from './types';\nimport {\n sortedCallHistory,\n mockCallHistoryBody,\n MOCK_SESSION_EVENT,\n MOCK_SESSION_EVENT_LEGACY,\n MOCK_SESSION_EVENT_VIEWED,\n MOCK_UPDATE_MISSED_CALL_RESPONSE,\n janusSetReadStateUrl,\n ERROR_DETAILS_401,\n ERROR_DETAILS_400,\n MOCK_LINES_API_CALL_RESPONSE,\n MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA,\n MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER,\n MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER,\n MOCK_SESSION_EVENT_DELETED,\n MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE,\n janusMarkAsDeletedUrl,\n MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE,\n} from './callHistoryFixtures';\nimport {\n COMMON_EVENT_KEYS,\n CallSessionDeletedEvent,\n CallSessionEvent,\n CallSessionViewedEvent,\n MOBIUS_EVENT_KEYS,\n} from '../Events/types';\nimport {APPLICATION_JSON, CALL_HISTORY_FILE, CONTENT_TYPE, METHODS} from './constants';\nimport * as utils from '../common/Utils';\nimport log from '../Logger';\nimport {METHOD_START_MESSAGE} from '../common/constants';\n\nconst webex = getTestUtilsWebex();\nlet serviceErrorCodeHandlerSpy: jest.SpyInstance;\nlet uploadLogsSpy: jest.SpyInstance;\n\ndescribe('Call history tests', () => {\n let callHistory: ICallHistory;\n const infoSpy = jest.spyOn(log, 'info').mockImplementation();\n const logSpy = jest.spyOn(log, 'log').mockImplementation();\n const errorSpy = jest.spyOn(log, 'error').mockImplementation();\n\n beforeAll(() => {\n callHistory = new CallHistory(webex, {level: LOGGER.INFO});\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n });\n\n it('verify successful call history case', async () => {\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n\n webex.request.mockResolvedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(response.statusCode).toBe(200);\n expect(response.message).toBe('SUCCESS');\n\n // Verify logging behavior\n expect(infoSpy).toHaveBeenCalled();\n expect(logSpy).toHaveBeenCalled();\n expect(errorSpy).not.toHaveBeenCalled();\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=7, limit=10, sort=DESC, sortBy=endTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining('Successfully retrieved call history data'),\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('verify bad request failed call history case', async () => {\n const failurePayload = {\n statusCode: 400,\n };\n const callHistoryPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(7, 2000, SORT.ASC, SORT_BY.START_TIME);\n\n expect(response.statusCode).toBe(400);\n expect(response.message).toBe('FAILURE');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=7, limit=2000, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).toHaveBeenCalledWith(\n `Failed to get call history: ${JSON.stringify(failurePayload)}`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n }\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('verify device not found call history case', async () => {\n const failurePayload = {\n statusCode: 404,\n };\n const callHistoryPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(0, 0, SORT.ASC, SORT_BY.START_TIME);\n\n expect(response.statusCode).toBe(404);\n expect(response.message).toBe('FAILURE');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=0, limit=0, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).toHaveBeenCalledWith(\n `Failed to get call history: ${JSON.stringify(failurePayload)}`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n }\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n describe('sorting user session response data by sortby', () => {\n it('Array should be sort.ASC by START TIME ', async () => {\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n\n webex.request.mockResolvedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(10, 20, SORT.ASC, SORT_BY.START_TIME);\n\n const responseDetails = {\n statusCode: sortedCallHistory.body.statusCode,\n data: {\n userSessions: sortedCallHistory.body.userSessions,\n },\n message: 'SUCCESS',\n };\n\n expect(response).toEqual(responseDetails);\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=10, limit=20, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n });\n });\n\n describe('Call History Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callHistory: ICallHistory;\n\n beforeEach(() => {\n callHistory = createCallHistoryClient(webex, {level: LOGGER.INFO});\n });\n\n it('verify the recent user session event ', (done) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO,\n (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n }\n );\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('verify the user session event received for locus calls', (done) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO,\n (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_LEGACY.data);\n done();\n }\n );\n\n expect(mockOn.mock.calls[1][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY);\n const callSessionCallback = mockOn.mock.calls[1][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_LEGACY);\n });\n\n it('verify the user viewed session event for missed calls update', async () => {\n await new Promise<void>((resolve) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS,\n (event: CallSessionViewedEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_VIEWED.data);\n resolve();\n }\n );\n\n expect(mockOn.mock.calls[2][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED);\n const callSessionCallback = mockOn.mock.calls[2][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_VIEWED);\n });\n });\n\n it('verify the user sessions deleted event for deleting the call history records', async () => {\n await new Promise<void>((resolve) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED,\n (event: CallSessionDeletedEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_DELETED.data);\n resolve();\n }\n );\n\n expect(mockOn.mock.calls[3][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED);\n const callSessionCallback = mockOn.mock.calls[3][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_DELETED);\n });\n });\n });\n\n describe('Update missed calls test', () => {\n const methodDetails = {\n file: CALL_HISTORY_FILE,\n method: METHODS.UPDATE_MISSED_CALLS,\n };\n afterEach(() => {\n jest.clearAllMocks();\n });\n beforeEach(async () => {\n serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 200,\n ok: true,\n json: () => Promise.resolve(MOCK_UPDATE_MISSED_CALL_RESPONSE),\n })\n ) as jest.Mock;\n });\n\n it('successfully updates missed calls', async () => {\n const endTimeSessionIds = [{endTime: '1234568', sessionId: '123'}];\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response.statusCode).toEqual(200);\n expect(response).toEqual(MOCK_UPDATE_MISSED_CALL_RESPONSE);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(convertedEndTimeSessionIds)}`,\n methodDetails\n );\n expect(logSpy).toHaveBeenCalledWith(\n 'Missed calls are successfully read by the user',\n methodDetails\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('Error: updateMissedCalls throw 400 error', async () => {\n const endTimeSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.statusCode).toBe(400);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 400,\n },\n methodDetails\n );\n expect(errorSpy).toBeCalledWith(\n expect.stringContaining('Failed to update missed calls'),\n methodDetails\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Error: updateMissedCalls throw 401 error', async () => {\n const endTimeSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 401,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_401);\n expect(response.statusCode).toBe(401);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 401,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('fetchUCMLinesData test', () => {\n beforeEach(() => {\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n });\n\n it('verify successful UCM lines API case', async () => {\n const ucmLinesAPIPayload = <WebexRequestPayload>(<unknown>MOCK_LINES_API_CALL_RESPONSE);\n\n webex.request.mockResolvedValue(ucmLinesAPIPayload);\n const response = await callHistory['fetchUCMLinesData']();\n\n expect(response.statusCode).toBe(200);\n expect(response.message).toBe('SUCCESS');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with URL: https://gw.telemetry.int-ucmgmt.cisco.com/v1/uc/config/people/8a67806f-fc4d-446b-a131-31e71ea5b0e9/lines?orgId=1704d30d-a131-4bc7-9449-948487643793',\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n }\n );\n expect(logSpy).toHaveBeenCalledWith('Line details fetched successfully', {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n });\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('verify bad request failed UCM lines API case', async () => {\n const failurePayload = {\n statusCode: 400,\n };\n const ucmLinesAPIPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(ucmLinesAPIPayload);\n const response = await callHistory['fetchUCMLinesData']();\n\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.data.error).toEqual(ERROR_DETAILS_400.data.error);\n expect(response.statusCode).toBe(400);\n expect(response.message).toBe('FAILURE');\n expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledWith(\n {statusCode: 400},\n {file: CALL_HISTORY_FILE, method: METHODS.FETCH_UCM_LINES_DATA}\n );\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with URL: https://gw.telemetry.int-ucmgmt.cisco.com/v1/uc/config/people/8a67806f-fc4d-446b-a131-31e71ea5b0e9/lines?orgId=1704d30d-a131-4bc7-9449-948487643793`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n }\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('should call fetchUCMLinesData when calling backend is UCM and userSessions contain valid cucmDN', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue(MOCK_LINES_API_CALL_RESPONSE);\n\n const mockCallHistoryPayload = <WebexRequestPayload>(\n (<unknown>MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER)\n );\n webex.request.mockResolvedValue(mockCallHistoryPayload);\n\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);\n\n expect(response.statusCode).toBe(200);\n expect(\n response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber\n ).toEqual(1);\n });\n\n it('should fetchUCMLinesData but not assign ucmLineNumber when UCM backend has no line data', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue(MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA);\n\n const mockCallHistoryPayload = <WebexRequestPayload>(\n (<unknown>MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER)\n );\n webex.request.mockResolvedValue(mockCallHistoryPayload);\n\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);\n\n expect(response.statusCode).toBe(200);\n expect(response.data.userSessions && response.data.userSessions[0].self.cucmDN).toBeDefined();\n expect(\n response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber\n ).toEqual(undefined);\n });\n\n it('should not call fetchUCMLinesData when calling backend is UCM but no valid cucmDN is present', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue({});\n\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n webex.request.mockResolvedValue(callHistoryPayload);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled();\n });\n\n it('should not call fetchUCMLinesData when calling backend is not UCM', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.WXC);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue({});\n\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n webex.request.mockResolvedValue(callHistoryPayload);\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled(); // Check that fetchUCMLinesData was not called\n });\n });\n\n describe('Delete call history records test', () => {\n const methodDetails = {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n };\n\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n beforeEach(async () => {\n serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 200,\n ok: true,\n json: () => Promise.resolve(MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE),\n })\n ) as jest.Mock;\n });\n\n it('successfully deletes the call history records', async () => {\n const deleteSessionIds = [{endTime: '2024-10-22T08:50:48.603Z', sessionId: '123'}];\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response.statusCode).toEqual(200);\n expect(response).toEqual(MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(deleteSessionIds)}`,\n methodDetails\n );\n expect(logSpy).toHaveBeenCalledWith(\n `Successfully deleted ${deleteSessionIds.length} call history records`,\n methodDetails\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('Error: deleteCallHistoryRecords throw 400 error', async () => {\n const deleteSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.statusCode).toBe(400);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 400,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Error: deleteCallHistoryRecords throw 401 error', async () => {\n const deleteSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 401,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_401);\n expect(response.statusCode).toBe(401);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 401,\n },\n methodDetails\n );\n expect(errorSpy).toBeCalledWith(\n expect.stringContaining('Failed to delete call history records'),\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n }\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('handles invalid date formats gracefully', async () => {\n const deleteSessionIds = [{endTime: 'invalid-date', sessionId: '123'}];\n\n // Mock the response to be 400 and trigger an error in your function\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n\n expect(response.statusCode).toBe(400);\n expect(response).toEqual(MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE);\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n expect.stringContaining('The provided date is malformed or invalid'),\n methodDetails\n );\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_types","require","_testUtil","_types2","_CallHistory","_callHistoryFixtures","_types3","_constants","utils","_interopRequireWildcard","_Logger","_interopRequireDefault","_constants2","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","webex","getTestUtilsWebex","serviceErrorCodeHandlerSpy","uploadLogsSpy","describe","callHistory","infoSpy","jest","spyOn","log","mockImplementation","logSpy","errorSpy","beforeAll","CallHistory","level","LOGGER","INFO","mockResolvedValue","it","_asyncToGenerator2","_regenerator","mark","_callee","callHistoryPayload","response","wrap","_callee$","_context","prev","next","mockCallHistoryBody","request","getCallHistoryData","SORT","DEFAULT","SORT_BY","sent","expect","statusCode","toBe","message","toHaveBeenCalled","not","toHaveBeenCalledWith","file","CALL_HISTORY_FILE","method","METHODS","GET_CALL_HISTORY_DATA","stringContaining","stop","_callee2","failurePayload","_callee2$","_context2","mockRejectedValue","ASC","START_TIME","concat","_stringify","toHaveBeenCalledTimes","_callee3","_callee3$","_context3","_callee4","responseDetails","_callee4$","_context4","sortedCallHistory","body","data","userSessions","toEqual","mockOn","internal","mercury","on","beforeEach","createCallHistoryClient","done","COMMON_EVENT_KEYS","CALL_HISTORY_USER_SESSION_INFO","event","MOCK_SESSION_EVENT","mock","calls","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","MOCK_SESSION_EVENT_LEGACY","CALL_SESSION_EVENT_LEGACY","_callee5","_callee5$","_context5","_promise","resolve","CALL_HISTORY_USER_VIEWED_SESSIONS","MOCK_SESSION_EVENT_VIEWED","CALL_SESSION_EVENT_VIEWED","_callee6","_callee6$","_context6","CALL_HISTORY_USER_SESSIONS_DELETED","MOCK_SESSION_EVENT_DELETED","CALL_SESSION_EVENT_DELETED","methodDetails","UPDATE_MISSED_CALLS","afterEach","clearAllMocks","_callee7","_callee7$","_context7","global","fetch","fn","status","ok","json","MOCK_UPDATE_MISSED_CALL_RESPONSE","_callee8","endTimeSessionIds","convertedEndTimeSessionIds","_callee8$","_context8","endTime","sessionId","updateMissedCalls","map","session","Date","getTime","t0","t1","janusSetReadStateUrl","t2","HTTP_METHODS","POST","t3","t4","CONTENT_TYPE","APPLICATION_JSON","credentials","getUserToken","t5","t6","t7","t8","headers","toBeCalledOnceWith","METHOD_START_MESSAGE","_callee9","_callee9$","_context9","toStrictEqual","ERROR_DETAILS_400","toBeCalledWith","_callee0","_callee0$","_context0","ERROR_DETAILS_401","_callee1","ucmLinesAPIPayload","_callee1$","_context1","MOCK_LINES_API_CALL_RESPONSE","FETCH_UCM_LINES_DATA","_callee10","_callee10$","_context10","error","_callee11","fetchUCMLinesDataSpy","mockCallHistoryPayload","_callee11$","_context11","mockReturnValue","CALLING_BACKEND","UCM","MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER","self","ucmLineNumber","_callee12","_callee12$","_context12","MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA","MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER","cucmDN","toBeDefined","undefined","_callee13","_callee13$","_context13","_callee14","_callee14$","_context14","WXC","DELETE_CALL_HISTORY_RECORDS","_callee15","_callee15$","_context15","MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE","_callee16","deleteSessionIds","_callee16$","_context16","deleteCallHistoryRecords","janusMarkAsDeletedUrl","_callee17","_callee17$","_context17","_callee18","_callee18$","_context18","_callee19","_callee19$","_context19","MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE","webexRequestSpy","restoreAllMocks","_callee20","callArgs","_callee20$","_context20","uri","toContain","GET","service","_callee21","_callee21$","_context21","_callee22","_callee22$","_context22","BWRKS","_callee23","_callee23$","_context23","_callee24","_callee24$","_context24","toMatch"],"sources":["CallHistory.test.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable dot-notation */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport {LOGGER} from '../Logger/types';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {CALLING_BACKEND, HTTP_METHODS, SORT, SORT_BY, WebexRequestPayload} from '../common/types';\nimport {CallHistory, createCallHistoryClient} from './CallHistory';\nimport {ICallHistory} from './types';\nimport {\n sortedCallHistory,\n mockCallHistoryBody,\n MOCK_SESSION_EVENT,\n MOCK_SESSION_EVENT_LEGACY,\n MOCK_SESSION_EVENT_VIEWED,\n MOCK_UPDATE_MISSED_CALL_RESPONSE,\n janusSetReadStateUrl,\n ERROR_DETAILS_401,\n ERROR_DETAILS_400,\n MOCK_LINES_API_CALL_RESPONSE,\n MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA,\n MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER,\n MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER,\n MOCK_SESSION_EVENT_DELETED,\n MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE,\n janusMarkAsDeletedUrl,\n MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE,\n} from './callHistoryFixtures';\nimport {\n COMMON_EVENT_KEYS,\n CallSessionDeletedEvent,\n CallSessionEvent,\n CallSessionViewedEvent,\n MOBIUS_EVENT_KEYS,\n} from '../Events/types';\nimport {APPLICATION_JSON, CALL_HISTORY_FILE, CONTENT_TYPE, METHODS} from './constants';\nimport * as utils from '../common/Utils';\nimport log from '../Logger';\nimport {METHOD_START_MESSAGE} from '../common/constants';\n\nconst webex = getTestUtilsWebex();\nlet serviceErrorCodeHandlerSpy: jest.SpyInstance;\nlet uploadLogsSpy: jest.SpyInstance;\n\ndescribe('Call history tests', () => {\n let callHistory: ICallHistory;\n const infoSpy = jest.spyOn(log, 'info').mockImplementation();\n const logSpy = jest.spyOn(log, 'log').mockImplementation();\n const errorSpy = jest.spyOn(log, 'error').mockImplementation();\n\n beforeAll(() => {\n callHistory = new CallHistory(webex, {level: LOGGER.INFO});\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n });\n\n it('verify successful call history case', async () => {\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n\n webex.request.mockResolvedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(response.statusCode).toBe(200);\n expect(response.message).toBe('SUCCESS');\n\n // Verify logging behavior\n expect(infoSpy).toHaveBeenCalled();\n expect(logSpy).toHaveBeenCalled();\n expect(errorSpy).not.toHaveBeenCalled();\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=7, limit=10, sort=DESC, sortBy=endTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(logSpy).toHaveBeenCalledWith(\n expect.stringContaining('Successfully retrieved call history data'),\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('verify bad request failed call history case', async () => {\n const failurePayload = {\n statusCode: 400,\n };\n const callHistoryPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(7, 2000, SORT.ASC, SORT_BY.START_TIME);\n\n expect(response.statusCode).toBe(400);\n expect(response.message).toBe('FAILURE');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=7, limit=2000, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).toHaveBeenCalledWith(\n `Failed to get call history: ${JSON.stringify(failurePayload)}`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n }\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('verify device not found call history case', async () => {\n const failurePayload = {\n statusCode: 404,\n };\n const callHistoryPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(0, 0, SORT.ASC, SORT_BY.START_TIME);\n\n expect(response.statusCode).toBe(404);\n expect(response.message).toBe('FAILURE');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=0, limit=0, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n expect(errorSpy).toHaveBeenCalledWith(\n `Failed to get call history: ${JSON.stringify(failurePayload)}`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.GET_CALL_HISTORY_DATA,\n }\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n describe('sorting user session response data by sortby', () => {\n it('Array should be sort.ASC by START TIME ', async () => {\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n\n webex.request.mockResolvedValue(callHistoryPayload);\n const response = await callHistory.getCallHistoryData(10, 20, SORT.ASC, SORT_BY.START_TIME);\n\n const responseDetails = {\n statusCode: sortedCallHistory.body.statusCode,\n data: {\n userSessions: sortedCallHistory.body.userSessions,\n },\n message: 'SUCCESS',\n };\n\n expect(response).toEqual(responseDetails);\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with days=10, limit=20, sort=ASC, sortBy=startTime',\n {file: CALL_HISTORY_FILE, method: METHODS.GET_CALL_HISTORY_DATA}\n );\n });\n });\n\n describe('Call History Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callHistory: ICallHistory;\n\n beforeEach(() => {\n callHistory = createCallHistoryClient(webex, {level: LOGGER.INFO});\n });\n\n it('verify the recent user session event ', (done) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO,\n (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n }\n );\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('verify the user session event received for locus calls', (done) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO,\n (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_LEGACY.data);\n done();\n }\n );\n\n expect(mockOn.mock.calls[1][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY);\n const callSessionCallback = mockOn.mock.calls[1][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_LEGACY);\n });\n\n it('verify the user viewed session event for missed calls update', async () => {\n await new Promise<void>((resolve) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS,\n (event: CallSessionViewedEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_VIEWED.data);\n resolve();\n }\n );\n\n expect(mockOn.mock.calls[2][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED);\n const callSessionCallback = mockOn.mock.calls[2][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_VIEWED);\n });\n });\n\n it('verify the user sessions deleted event for deleting the call history records', async () => {\n await new Promise<void>((resolve) => {\n callHistory.on(\n COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED,\n (event: CallSessionDeletedEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT_DELETED.data);\n resolve();\n }\n );\n\n expect(mockOn.mock.calls[3][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED);\n const callSessionCallback = mockOn.mock.calls[3][1];\n\n callSessionCallback(MOCK_SESSION_EVENT_DELETED);\n });\n });\n });\n\n describe('Update missed calls test', () => {\n const methodDetails = {\n file: CALL_HISTORY_FILE,\n method: METHODS.UPDATE_MISSED_CALLS,\n };\n afterEach(() => {\n jest.clearAllMocks();\n });\n beforeEach(async () => {\n serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 200,\n ok: true,\n json: () => Promise.resolve(MOCK_UPDATE_MISSED_CALL_RESPONSE),\n })\n ) as jest.Mock;\n });\n\n it('successfully updates missed calls', async () => {\n const endTimeSessionIds = [{endTime: '1234568', sessionId: '123'}];\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response.statusCode).toEqual(200);\n expect(response).toEqual(MOCK_UPDATE_MISSED_CALL_RESPONSE);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(convertedEndTimeSessionIds)}`,\n methodDetails\n );\n expect(logSpy).toHaveBeenCalledWith(\n 'Missed calls are successfully read by the user',\n methodDetails\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('Error: updateMissedCalls throw 400 error', async () => {\n const endTimeSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.statusCode).toBe(400);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 400,\n },\n methodDetails\n );\n expect(errorSpy).toBeCalledWith(\n expect.stringContaining('Failed to update missed calls'),\n methodDetails\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Error: updateMissedCalls throw 401 error', async () => {\n const endTimeSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 401,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.updateMissedCalls(endTimeSessionIds);\n const convertedEndTimeSessionIds = endTimeSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_401);\n expect(response.statusCode).toBe(401);\n expect(global.fetch).toBeCalledOnceWith(janusSetReadStateUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({endTimeSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 401,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('fetchUCMLinesData test', () => {\n beforeEach(() => {\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n });\n\n it('verify successful UCM lines API case', async () => {\n const ucmLinesAPIPayload = <WebexRequestPayload>(<unknown>MOCK_LINES_API_CALL_RESPONSE);\n\n webex.request.mockResolvedValue(ucmLinesAPIPayload);\n const response = await callHistory['fetchUCMLinesData']();\n\n expect(response.statusCode).toBe(200);\n expect(response.message).toBe('SUCCESS');\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n 'invoking with URL: https://gw.telemetry.int-ucmgmt.cisco.com/v1/uc/config/people/8a67806f-fc4d-446b-a131-31e71ea5b0e9/lines?orgId=1704d30d-a131-4bc7-9449-948487643793',\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n }\n );\n expect(logSpy).toHaveBeenCalledWith('Line details fetched successfully', {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n });\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('verify bad request failed UCM lines API case', async () => {\n const failurePayload = {\n statusCode: 400,\n };\n const ucmLinesAPIPayload = <WebexRequestPayload>(<unknown>failurePayload);\n\n webex.request.mockRejectedValue(ucmLinesAPIPayload);\n const response = await callHistory['fetchUCMLinesData']();\n\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.data.error).toEqual(ERROR_DETAILS_400.data.error);\n expect(response.statusCode).toBe(400);\n expect(response.message).toBe('FAILURE');\n expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledWith(\n {statusCode: 400},\n {file: CALL_HISTORY_FILE, method: METHODS.FETCH_UCM_LINES_DATA}\n );\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with URL: https://gw.telemetry.int-ucmgmt.cisco.com/v1/uc/config/people/8a67806f-fc4d-446b-a131-31e71ea5b0e9/lines?orgId=1704d30d-a131-4bc7-9449-948487643793`,\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.FETCH_UCM_LINES_DATA,\n }\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('should call fetchUCMLinesData when calling backend is UCM and userSessions contain valid cucmDN', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue(MOCK_LINES_API_CALL_RESPONSE);\n\n const mockCallHistoryPayload = <WebexRequestPayload>(\n (<unknown>MOCK_CALL_HISTORY_WITH_UCM_LINE_NUMBER)\n );\n webex.request.mockResolvedValue(mockCallHistoryPayload);\n\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);\n\n expect(response.statusCode).toBe(200);\n expect(\n response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber\n ).toEqual(1);\n });\n\n it('should fetchUCMLinesData but not assign ucmLineNumber when UCM backend has no line data', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue(MOCK_LINES_API_CALL_RESPONSE_WITH_NO_LINEDATA);\n\n const mockCallHistoryPayload = <WebexRequestPayload>(\n (<unknown>MOCK_CALL_HISTORY_WITHOUT_UCM_LINE_NUMBER)\n );\n webex.request.mockResolvedValue(mockCallHistoryPayload);\n\n const response = await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).toHaveBeenCalledTimes(1);\n\n expect(response.statusCode).toBe(200);\n expect(response.data.userSessions && response.data.userSessions[0].self.cucmDN).toBeDefined();\n expect(\n response.data.userSessions && response.data.userSessions[0].self.ucmLineNumber\n ).toEqual(undefined);\n });\n\n it('should not call fetchUCMLinesData when calling backend is UCM but no valid cucmDN is present', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue({});\n\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n webex.request.mockResolvedValue(callHistoryPayload);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled();\n });\n\n it('should not call fetchUCMLinesData when calling backend is not UCM', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.WXC);\n // Since fetchUCMLinesData is a private method, TypeScript restricts direct access to it.\n // To bypass this restriction, we are using 'as any' to access and invoke the method for testing purposes.\n const fetchUCMLinesDataSpy = jest\n .spyOn(callHistory as any, 'fetchUCMLinesData')\n .mockResolvedValue({});\n\n const callHistoryPayload = <WebexRequestPayload>(<unknown>mockCallHistoryBody);\n webex.request.mockResolvedValue(callHistoryPayload);\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n expect(fetchUCMLinesDataSpy).not.toHaveBeenCalled(); // Check that fetchUCMLinesData was not called\n });\n });\n\n describe('Delete call history records test', () => {\n const methodDetails = {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n };\n\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n beforeEach(async () => {\n serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 200,\n ok: true,\n json: () => Promise.resolve(MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE),\n })\n ) as jest.Mock;\n });\n\n it('successfully deletes the call history records', async () => {\n const deleteSessionIds = [{endTime: '2024-10-22T08:50:48.603Z', sessionId: '123'}];\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response.statusCode).toEqual(200);\n expect(response).toEqual(MOCK_DELETE_CALL_HISTORY_RECORDS_RESPONSE);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with sessions: ${JSON.stringify(deleteSessionIds)}`,\n methodDetails\n );\n expect(logSpy).toHaveBeenCalledWith(\n `Successfully deleted ${deleteSessionIds.length} call history records`,\n methodDetails\n );\n expect(errorSpy).not.toHaveBeenCalled();\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n\n it('Error: deleteCallHistoryRecords throw 400 error', async () => {\n const deleteSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_400);\n expect(response.statusCode).toBe(400);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 400,\n },\n methodDetails\n );\n expect(errorSpy).toHaveBeenCalled();\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Error: deleteCallHistoryRecords throw 401 error', async () => {\n const deleteSessionIds = [];\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 401,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n const convertedEndTimeSessionIds = deleteSessionIds.map((session) => ({\n ...session,\n endTime: new Date(session.endTime).getTime(),\n }));\n expect(response).toStrictEqual(ERROR_DETAILS_401);\n expect(response.statusCode).toBe(401);\n expect(global.fetch).toBeCalledOnceWith(janusMarkAsDeletedUrl, {\n method: HTTP_METHODS.POST,\n headers: {\n [CONTENT_TYPE]: APPLICATION_JSON,\n Authorization: await webex.credentials.getUserToken(),\n },\n body: JSON.stringify({deleteSessionIds: convertedEndTimeSessionIds}),\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n {\n statusCode: 401,\n },\n methodDetails\n );\n expect(errorSpy).toBeCalledWith(\n expect.stringContaining('Failed to delete call history records'),\n {\n file: CALL_HISTORY_FILE,\n method: METHODS.DELETE_CALL_HISTORY_RECORDS,\n }\n );\n expect(uploadLogsSpy).toHaveBeenCalledTimes(1);\n });\n\n it('handles invalid date formats gracefully', async () => {\n const deleteSessionIds = [{endTime: 'invalid-date', sessionId: '123'}];\n\n // Mock the response to be 400 and trigger an error in your function\n global.fetch = jest.fn(() =>\n Promise.resolve({\n status: 400,\n ok: false,\n })\n ) as jest.Mock;\n\n const response = await callHistory.deleteCallHistoryRecords(deleteSessionIds);\n\n expect(response.statusCode).toBe(400);\n expect(response).toEqual(MOCK_DELETE_CALL_HISTORY_INVALID_DATE_RESPONSE);\n\n // Verify logs were called with correct information\n expect(infoSpy).toHaveBeenCalledWith(\n expect.stringContaining('The provided date is malformed or invalid'),\n methodDetails\n );\n expect(uploadLogsSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('URL construction for shared sessions based on calling backend', () => {\n let webexRequestSpy: jest.SpyInstance;\n\n beforeEach(() => {\n webexRequestSpy = jest.spyOn(webex, 'request').mockResolvedValue({\n statusCode: 200,\n body: {\n statusCode: 200,\n userSessions: [],\n },\n });\n });\n\n afterEach(() => {\n jest.restoreAllMocks();\n });\n\n it('should include includeSharedSessions=true for WXC backend', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.WXC);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).toContain('&includeSharedSessions=true');\n expect(callArgs.method).toBe(HTTP_METHODS.GET);\n expect(callArgs.service).toBe('janus');\n });\n\n it('should NOT include includeSharedSessions for UCM backend', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.UCM);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).not.toContain('includeSharedSessions');\n expect(callArgs.method).toBe(HTTP_METHODS.GET);\n expect(callArgs.service).toBe('janus');\n });\n\n it('should NOT include includeSharedSessions for BWRKS backend', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.BWRKS);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).not.toContain('includeSharedSessions');\n expect(callArgs.method).toBe(HTTP_METHODS.GET);\n expect(callArgs.service).toBe('janus');\n });\n\n it('should NOT include includeSharedSessions for unknown/other backends', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue('OTHER_BACKEND' as any);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).not.toContain('includeSharedSessions');\n expect(callArgs.method).toBe(HTTP_METHODS.GET);\n expect(callArgs.service).toBe('janus');\n });\n\n it('should construct URL correctly with base parameters for all backends', async () => {\n jest.spyOn(utils, 'getCallingBackEnd').mockReturnValue(CALLING_BACKEND.WXC);\n\n await callHistory.getCallHistoryData(7, 10, SORT.DEFAULT, SORT_BY.DEFAULT);\n\n const callArgs = webexRequestSpy.mock.calls[0][0];\n expect(callArgs.uri).toMatch(\n /.*\\/history\\/userSessions.*limit=10.*includeNewSessionTypes=true.*sort=DESC.*/\n );\n expect(callArgs.uri).toContain('&includeSharedSessions=true');\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,6 +31,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
31
31
|
*/
|
|
32
32
|
var WxCallBackendConnector = exports.WxCallBackendConnector = /*#__PURE__*/function () {
|
|
33
33
|
function WxCallBackendConnector(webex, logger) {
|
|
34
|
+
var _this$webex$internal$;
|
|
34
35
|
(0, _classCallCheck2.default)(this, WxCallBackendConnector);
|
|
35
36
|
(0, _defineProperty2.default)(this, "sdkConnector", void 0);
|
|
36
37
|
(0, _defineProperty2.default)(this, "webex", void 0);
|
|
@@ -46,7 +47,7 @@ var WxCallBackendConnector = exports.WxCallBackendConnector = /*#__PURE__*/funct
|
|
|
46
47
|
}
|
|
47
48
|
this.webex = this.sdkConnector.getWebex();
|
|
48
49
|
/* eslint no-underscore-dangle: 0 */
|
|
49
|
-
this.hydraEndpoint = this.webex.internal.services._serviceUrls.hydra;
|
|
50
|
+
this.hydraEndpoint = ((_this$webex$internal$ = this.webex.internal.services._serviceUrls) === null || _this$webex$internal$ === void 0 ? void 0 : _this$webex$internal$.hydra) || this.webex.internal.services.get(this.webex.internal.services._activeServices.hydra);
|
|
50
51
|
_Logger.default.setLogger(logger.level, _constants.WEBEX_CALLING_CONNECTOR_FILE);
|
|
51
52
|
this.userId = this.webex.internal.device.userId;
|
|
52
53
|
this.personId = (0, _Utils.inferIdFromUuid)(this.webex.internal.device.userId, _types.DecodeType.PEOPLE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_Logger","_types","_constants","_constants2","_Utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","WxCallBackendConnector","exports","webex","logger","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","hydraEndpoint","internal","services","_serviceUrls","hydra","log","setLogger","level","WEBEX_CALLING_CONNECTOR_FILE","userId","device","personId","inferIdFromUuid","DecodeType","PEOPLE","orgId","ORGANIZATION","_createClass2","key","value","_getCallWaitingSetting","_asyncToGenerator2","_regenerator","mark","_callee","loggerContext","_response$headers","callWaitingUrl","response","xmlData","parser","xmlDOM","callWaitingDetails","status","toggleSetting","responseDetails","errorInfo","errorStatus","wrap","_callee$","_context","prev","next","file","method","METHODS","GET_CALL_WAITING_SETTING","info","METHOD_START_MESSAGE","xsiEndpoint","getXsiActionEndpoint","CALLING_BACKEND","WXC","sent","concat","XSI_VERSION","USER_ENDPOINT","SERVICES_ENDPOINT","CALL_WAITING_ENDPOINT","t0","fetch","t1","t2","HTTP_METHODS","GET","credentials","getUserToken","t3","t4","Authorization","t5","headers","ok","Error","get","text","DOMParser","parseFromString","XML_TYPE","getElementsByTagName","childNodes","textContent","enabled","statusCode","data","callSetting","message","SUCCESS_MESSAGE","abrupt","t6","error","_stringify","uploadLogs","Number","serviceErrorCodeHandler","stop","getCallWaitingSetting","_getDoNotDisturbSetting","_callee2","_resp$headers","resp","dndSettingResponse","_callee2$","_context2","GET_DO_NOT_DISTURB_SETTING","request","uri","PEOPLE_ENDPOINT","DND_ENDPOINT","ORG_ENDPOINT","trackingid","body","STATUS_CODE","getDoNotDisturbSetting","_setDoNotDisturbSetting","_callee3","_resp$headers2","dndRequestBody","_callee3$","_context3","SET_DO_NOT_DISTURB_SETTING","ringSplashEnabled","PUT","setDoNotDisturbSetting","_x","_getCallForwardSetting","_callee4","_resp$headers3","cfResponse","_callee4$","_context4","GET_CALL_FORWARD_SETTING","CF_ENDPOINT","getCallForwardSetting","_setCallForwardSetting","_callee5","callForwardingRequest","_resp$headers4","_callee5$","_context5","SET_CALL_FORWARD_SETTING","setCallForwardSetting","_x2","_getVoicemailSetting","_callee6","_resp$headers5","vmResponse","_callee6$","_context6","GET_VOICEMAIL_SETTING","VM_ENDPOINT","getVoicemailSetting","_setVoicemailSetting","_callee7","voicemailRequest","_resp$headers6","_callee7$","_context7","SET_VOICEMAIL_SETTING","setVoicemailSetting","_x3","_getCallForwardAlwaysSetting","_callee8","cfa","_vm$sendAllCalls","vm","_response","_response2","_callee8$","_context8","GET_CALL_FORWARD_ALWAYS_SETTING","callForwarding","always","destination","warn","sendAllCalls","VOICEMAIL","undefined","getCallForwardAlwaysSetting"],"sources":["WxCallBackendConnector.ts"],"sourcesContent":["import SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {\n LoggerInterface,\n ToggleSetting,\n CallForwardSetting,\n CallSettingResponse,\n VoicemailSetting,\n IWxCallBackendConnector,\n CallForwardAlwaysSetting,\n} from './types';\nimport log from '../Logger';\nimport {WebexRequestPayload, HTTP_METHODS, DecodeType, CALLING_BACKEND} from '../common/types';\nimport {\n SERVICES_ENDPOINT,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n XML_TYPE,\n WEBEX_CALLING_CONNECTOR_FILE,\n METHOD_START_MESSAGE,\n} from '../common/constants';\nimport {\n CALL_WAITING_ENDPOINT,\n CF_ENDPOINT,\n DND_ENDPOINT,\n METHODS,\n ORG_ENDPOINT,\n PEOPLE_ENDPOINT,\n USER_ENDPOINT,\n VM_ENDPOINT,\n XSI_VERSION,\n} from './constants';\nimport {\n getXsiActionEndpoint,\n inferIdFromUuid,\n serviceErrorCodeHandler,\n uploadLogs,\n} from '../common/Utils';\n\n/**\n * This Connector class will implement child interface of ICallSettings and\n * has methods for the Webex Calling backend.\n */\nexport class WxCallBackendConnector implements IWxCallBackendConnector {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private userId: string;\n\n private personId: string;\n\n private orgId: string;\n\n private xsiEndpoint!: string;\n\n private hydraEndpoint: string;\n\n private VOICEMAIL = 'VOICEMAIL';\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 /* eslint no-underscore-dangle: 0 */\n this.hydraEndpoint = this.webex.internal.services._serviceUrls.hydra;\n log.setLogger(logger.level, WEBEX_CALLING_CONNECTOR_FILE);\n\n this.userId = this.webex.internal.device.userId;\n this.personId = inferIdFromUuid(this.webex.internal.device.userId, DecodeType.PEOPLE);\n this.orgId = inferIdFromUuid(this.webex.internal.device.orgId, DecodeType.ORGANIZATION);\n }\n\n /**\n * Reads call waiting setting at the backend.\n */\n public async getCallWaitingSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_CALL_WAITING_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n if (!this.xsiEndpoint) {\n this.xsiEndpoint = await getXsiActionEndpoint(\n this.webex,\n loggerContext,\n CALLING_BACKEND.WXC\n );\n log.info(`xsiEndpoint: ${this.xsiEndpoint}`, loggerContext);\n }\n\n const callWaitingUrl = `${this.xsiEndpoint}/${XSI_VERSION}/${USER_ENDPOINT}/${this.userId}/${SERVICES_ENDPOINT}/${CALL_WAITING_ENDPOINT}`;\n\n const response = await fetch(`${callWaitingUrl}`, {\n method: HTTP_METHODS.GET,\n headers: {\n Authorization: await this.webex.credentials.getUserToken(),\n },\n });\n\n if (!response.ok) {\n /* Throw error code if any the exception error */\n throw new Error(`${response.status}`);\n }\n\n log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);\n\n const xmlData = await response.text();\n const parser = new DOMParser();\n const xmlDOM = parser.parseFromString(xmlData, XML_TYPE);\n const callWaitingDetails = xmlDOM.getElementsByTagName('active');\n const status = callWaitingDetails[0].childNodes[0].textContent;\n\n const toggleSetting: ToggleSetting = {\n enabled: status === 'true',\n };\n const responseDetails: CallSettingResponse = {\n statusCode: 200,\n data: {\n callSetting: toggleSetting,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully got Call Waiting settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get call waiting setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Reads DND setting at the backend.\n */\n public async getDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${DND_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const dndSettingResponse = resp.body as ToggleSetting;\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: dndSettingResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(\n `Successfully got Do Not Disturb settings, personId: ${this.personId}`,\n loggerContext\n );\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get DoNotDisturb setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Updates DND setting at the backend.\n */\n public async setDoNotDisturbSetting(enabled: boolean): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.SET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const dndRequestBody: ToggleSetting = {\n enabled,\n ringSplashEnabled: false,\n };\n\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${DND_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.PUT,\n body: dndRequestBody,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: dndRequestBody,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(\n `Successfully set Do Not Disturb settings, personId: ${this.personId}`,\n loggerContext\n );\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to set DoNotDisturb setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Reads Call Forward setting at the backend.\n */\n public async getCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${CF_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const cfResponse = resp.body as CallForwardSetting;\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: cfResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully got Call Forward settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get Call Forward setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Updates Call Forward setting at the backend.\n */\n public async setCallForwardSetting(\n callForwardingRequest: CallForwardSetting\n ): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.SET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${CF_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.PUT,\n body: callForwardingRequest,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: callForwardingRequest,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully set Call Forward settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to set Call Forward setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Reads Voicemail setting at the backend.\n */\n public async getVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${VM_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const vmResponse = resp.body as VoicemailSetting;\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: vmResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully got Voicemail settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get Voicemail setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Updates Voicemail setting at the backend.\n */\n public async setVoicemailSetting(\n voicemailRequest: VoicemailSetting\n ): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.SET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${VM_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.PUT,\n body: voicemailRequest,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: voicemailRequest,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully set Voicemail settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to set Voicemail setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * 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 */\n public async getCallForwardAlwaysSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_ALWAYS_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n const cfResponse = await this.getCallForwardSetting();\n\n if (cfResponse.statusCode === 200) {\n const cfa = (cfResponse.data.callSetting as CallForwardSetting).callForwarding.always;\n\n /** CFA is set to destination */\n if (cfa.enabled) {\n if (cfa.destination) {\n const response = {\n ...cfResponse,\n data: {\n callSetting: cfa,\n },\n };\n\n return response;\n }\n log.warn(`CFA is enabled, but destination is not set`, loggerContext);\n }\n const vmResponse = await this.getVoicemailSetting();\n\n if (vmResponse.statusCode === 200) {\n const vm = vmResponse.data.callSetting as VoicemailSetting;\n\n /** CFA is enabled to voicemail */\n if (vm.enabled && vm.sendAllCalls?.enabled) {\n const response = {\n ...cfResponse,\n data: {\n callSetting: {\n ...cfa,\n enabled: true,\n destination: this.VOICEMAIL,\n } as CallForwardAlwaysSetting,\n },\n };\n\n return response;\n }\n\n /** No CFA is set */\n const response = {\n ...cfResponse,\n data: {\n callSetting: {\n ...cfa,\n enabled: false,\n destination: undefined,\n } as CallForwardAlwaysSetting,\n },\n };\n\n return response;\n }\n\n log.warn(`Unable to retrieve voicemail settings.`, loggerContext);\n\n vmResponse.data.error = 'Unable to retrieve voicemail settings.';\n\n return vmResponse;\n }\n\n return cfResponse;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_Logger","_types","_constants","_constants2","_Utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","WxCallBackendConnector","exports","webex","logger","_this$webex$internal$","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","hydraEndpoint","internal","services","_serviceUrls","hydra","get","_activeServices","log","setLogger","level","WEBEX_CALLING_CONNECTOR_FILE","userId","device","personId","inferIdFromUuid","DecodeType","PEOPLE","orgId","ORGANIZATION","_createClass2","key","value","_getCallWaitingSetting","_asyncToGenerator2","_regenerator","mark","_callee","loggerContext","_response$headers","callWaitingUrl","response","xmlData","parser","xmlDOM","callWaitingDetails","status","toggleSetting","responseDetails","errorInfo","errorStatus","wrap","_callee$","_context","prev","next","file","method","METHODS","GET_CALL_WAITING_SETTING","info","METHOD_START_MESSAGE","xsiEndpoint","getXsiActionEndpoint","CALLING_BACKEND","WXC","sent","concat","XSI_VERSION","USER_ENDPOINT","SERVICES_ENDPOINT","CALL_WAITING_ENDPOINT","t0","fetch","t1","t2","HTTP_METHODS","GET","credentials","getUserToken","t3","t4","Authorization","t5","headers","ok","Error","text","DOMParser","parseFromString","XML_TYPE","getElementsByTagName","childNodes","textContent","enabled","statusCode","data","callSetting","message","SUCCESS_MESSAGE","abrupt","t6","error","_stringify","uploadLogs","Number","serviceErrorCodeHandler","stop","getCallWaitingSetting","_getDoNotDisturbSetting","_callee2","_resp$headers","resp","dndSettingResponse","_callee2$","_context2","GET_DO_NOT_DISTURB_SETTING","request","uri","PEOPLE_ENDPOINT","DND_ENDPOINT","ORG_ENDPOINT","trackingid","body","STATUS_CODE","getDoNotDisturbSetting","_setDoNotDisturbSetting","_callee3","_resp$headers2","dndRequestBody","_callee3$","_context3","SET_DO_NOT_DISTURB_SETTING","ringSplashEnabled","PUT","setDoNotDisturbSetting","_x","_getCallForwardSetting","_callee4","_resp$headers3","cfResponse","_callee4$","_context4","GET_CALL_FORWARD_SETTING","CF_ENDPOINT","getCallForwardSetting","_setCallForwardSetting","_callee5","callForwardingRequest","_resp$headers4","_callee5$","_context5","SET_CALL_FORWARD_SETTING","setCallForwardSetting","_x2","_getVoicemailSetting","_callee6","_resp$headers5","vmResponse","_callee6$","_context6","GET_VOICEMAIL_SETTING","VM_ENDPOINT","getVoicemailSetting","_setVoicemailSetting","_callee7","voicemailRequest","_resp$headers6","_callee7$","_context7","SET_VOICEMAIL_SETTING","setVoicemailSetting","_x3","_getCallForwardAlwaysSetting","_callee8","cfa","_vm$sendAllCalls","vm","_response","_response2","_callee8$","_context8","GET_CALL_FORWARD_ALWAYS_SETTING","callForwarding","always","destination","warn","sendAllCalls","VOICEMAIL","undefined","getCallForwardAlwaysSetting"],"sources":["WxCallBackendConnector.ts"],"sourcesContent":["import SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {\n LoggerInterface,\n ToggleSetting,\n CallForwardSetting,\n CallSettingResponse,\n VoicemailSetting,\n IWxCallBackendConnector,\n CallForwardAlwaysSetting,\n} from './types';\nimport log from '../Logger';\nimport {WebexRequestPayload, HTTP_METHODS, DecodeType, CALLING_BACKEND} from '../common/types';\nimport {\n SERVICES_ENDPOINT,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n XML_TYPE,\n WEBEX_CALLING_CONNECTOR_FILE,\n METHOD_START_MESSAGE,\n} from '../common/constants';\nimport {\n CALL_WAITING_ENDPOINT,\n CF_ENDPOINT,\n DND_ENDPOINT,\n METHODS,\n ORG_ENDPOINT,\n PEOPLE_ENDPOINT,\n USER_ENDPOINT,\n VM_ENDPOINT,\n XSI_VERSION,\n} from './constants';\nimport {\n getXsiActionEndpoint,\n inferIdFromUuid,\n serviceErrorCodeHandler,\n uploadLogs,\n} from '../common/Utils';\n\n/**\n * This Connector class will implement child interface of ICallSettings and\n * has methods for the Webex Calling backend.\n */\nexport class WxCallBackendConnector implements IWxCallBackendConnector {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private userId: string;\n\n private personId: string;\n\n private orgId: string;\n\n private xsiEndpoint!: string;\n\n private hydraEndpoint: string;\n\n private VOICEMAIL = 'VOICEMAIL';\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 /* eslint no-underscore-dangle: 0 */\n this.hydraEndpoint =\n this.webex.internal.services._serviceUrls?.hydra ||\n this.webex.internal.services.get(this.webex.internal.services._activeServices.hydra);\n log.setLogger(logger.level, WEBEX_CALLING_CONNECTOR_FILE);\n\n this.userId = this.webex.internal.device.userId;\n this.personId = inferIdFromUuid(this.webex.internal.device.userId, DecodeType.PEOPLE);\n this.orgId = inferIdFromUuid(this.webex.internal.device.orgId, DecodeType.ORGANIZATION);\n }\n\n /**\n * Reads call waiting setting at the backend.\n */\n public async getCallWaitingSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_CALL_WAITING_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n if (!this.xsiEndpoint) {\n this.xsiEndpoint = await getXsiActionEndpoint(\n this.webex,\n loggerContext,\n CALLING_BACKEND.WXC\n );\n log.info(`xsiEndpoint: ${this.xsiEndpoint}`, loggerContext);\n }\n\n const callWaitingUrl = `${this.xsiEndpoint}/${XSI_VERSION}/${USER_ENDPOINT}/${this.userId}/${SERVICES_ENDPOINT}/${CALL_WAITING_ENDPOINT}`;\n\n const response = await fetch(`${callWaitingUrl}`, {\n method: HTTP_METHODS.GET,\n headers: {\n Authorization: await this.webex.credentials.getUserToken(),\n },\n });\n\n if (!response.ok) {\n /* Throw error code if any the exception error */\n throw new Error(`${response.status}`);\n }\n\n log.log(`Response trackingId: ${response.headers?.get('trackingid')}`, loggerContext);\n\n const xmlData = await response.text();\n const parser = new DOMParser();\n const xmlDOM = parser.parseFromString(xmlData, XML_TYPE);\n const callWaitingDetails = xmlDOM.getElementsByTagName('active');\n const status = callWaitingDetails[0].childNodes[0].textContent;\n\n const toggleSetting: ToggleSetting = {\n enabled: status === 'true',\n };\n const responseDetails: CallSettingResponse = {\n statusCode: 200,\n data: {\n callSetting: toggleSetting,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully got Call Waiting settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get call waiting setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = {\n statusCode: err instanceof Error ? Number(err.message) : '',\n } as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Reads DND setting at the backend.\n */\n public async getDoNotDisturbSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${DND_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const dndSettingResponse = resp.body as ToggleSetting;\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: dndSettingResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(\n `Successfully got Do Not Disturb settings, personId: ${this.personId}`,\n loggerContext\n );\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get DoNotDisturb setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Updates DND setting at the backend.\n */\n public async setDoNotDisturbSetting(enabled: boolean): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.SET_DO_NOT_DISTURB_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const dndRequestBody: ToggleSetting = {\n enabled,\n ringSplashEnabled: false,\n };\n\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${DND_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.PUT,\n body: dndRequestBody,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: dndRequestBody,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(\n `Successfully set Do Not Disturb settings, personId: ${this.personId}`,\n loggerContext\n );\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to set DoNotDisturb setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Reads Call Forward setting at the backend.\n */\n public async getCallForwardSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${CF_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const cfResponse = resp.body as CallForwardSetting;\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: cfResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully got Call Forward settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get Call Forward setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Updates Call Forward setting at the backend.\n */\n public async setCallForwardSetting(\n callForwardingRequest: CallForwardSetting\n ): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.SET_CALL_FORWARD_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${CF_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.PUT,\n body: callForwardingRequest,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: callForwardingRequest,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully set Call Forward settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to set Call Forward setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Reads Voicemail setting at the backend.\n */\n public async getVoicemailSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${VM_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.GET,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const vmResponse = resp.body as VoicemailSetting;\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: vmResponse,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully got Voicemail settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to get Voicemail setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Updates Voicemail setting at the backend.\n */\n public async setVoicemailSetting(\n voicemailRequest: VoicemailSetting\n ): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.SET_VOICEMAIL_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n try {\n const resp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.hydraEndpoint}/${PEOPLE_ENDPOINT}/${this.personId}/${VM_ENDPOINT}?${ORG_ENDPOINT}=${this.orgId}`,\n method: HTTP_METHODS.PUT,\n body: voicemailRequest,\n });\n\n log.log(`Response trackingId: ${resp?.headers?.trackingid}`, loggerContext);\n\n const responseDetails: CallSettingResponse = {\n statusCode: Number(resp[STATUS_CODE]),\n data: {\n callSetting: voicemailRequest,\n },\n message: SUCCESS_MESSAGE,\n };\n\n log.log(`Successfully set Voicemail settings, personId: ${this.personId}`, loggerContext);\n\n return responseDetails;\n } catch (err: unknown) {\n log.error(`Failed to set Voicemail setting: ${JSON.stringify(err)}`, loggerContext);\n await uploadLogs();\n\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * 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 */\n public async getCallForwardAlwaysSetting(): Promise<CallSettingResponse> {\n const loggerContext = {\n file: WEBEX_CALLING_CONNECTOR_FILE,\n method: METHODS.GET_CALL_FORWARD_ALWAYS_SETTING,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n const cfResponse = await this.getCallForwardSetting();\n\n if (cfResponse.statusCode === 200) {\n const cfa = (cfResponse.data.callSetting as CallForwardSetting).callForwarding.always;\n\n /** CFA is set to destination */\n if (cfa.enabled) {\n if (cfa.destination) {\n const response = {\n ...cfResponse,\n data: {\n callSetting: cfa,\n },\n };\n\n return response;\n }\n log.warn(`CFA is enabled, but destination is not set`, loggerContext);\n }\n const vmResponse = await this.getVoicemailSetting();\n\n if (vmResponse.statusCode === 200) {\n const vm = vmResponse.data.callSetting as VoicemailSetting;\n\n /** CFA is enabled to voicemail */\n if (vm.enabled && vm.sendAllCalls?.enabled) {\n const response = {\n ...cfResponse,\n data: {\n callSetting: {\n ...cfa,\n enabled: true,\n destination: this.VOICEMAIL,\n } as CallForwardAlwaysSetting,\n },\n };\n\n return response;\n }\n\n /** No CFA is set */\n const response = {\n ...cfResponse,\n data: {\n callSetting: {\n ...cfa,\n enabled: false,\n destination: undefined,\n } as CallForwardAlwaysSetting,\n },\n };\n\n return response;\n }\n\n log.warn(`Unable to retrieve voicemail settings.`, loggerContext);\n\n vmResponse.data.error = 'Unable to retrieve voicemail settings.';\n\n return vmResponse;\n }\n\n return cfResponse;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|