@webex/calling 0.0.1-next.5 → 0.0.1-next.6

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.
@@ -273,7 +273,9 @@ export class BroadworksBackendConnector {
273
273
  return responseDetails;
274
274
  }
275
275
  catch (err) {
276
- const errorInfo = err;
276
+ const errorInfo = {
277
+ statusCode: err instanceof Error ? Number(err.message) : '',
278
+ };
277
279
  const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);
278
280
  return errorStatus;
279
281
  }
@@ -1,7 +1,7 @@
1
1
  import SDKConnector from '../SDKConnector';
2
2
  import { HTTP_METHODS, CALLING_BACKEND, } from '../common/types';
3
3
  import { getVgActionEndpoint, serviceErrorCodeHandler } from '../common/Utils';
4
- import { SUCCESS_MESSAGE, USERS, CONTENT, UCM_CONNECTOR_FILE } from '../common/constants';
4
+ import { SUCCESS_MESSAGE, USERS, CONTENT, UCM_CONNECTOR_FILE, FAILURE_MESSAGE, } from '../common/constants';
5
5
  import log from '../Logger';
6
6
  import { API_V1, LIMIT, OFFSET, SORT_ORDER, VMGATEWAY, VOICEMAILS } from './constants';
7
7
  export class UcmBackendConnector {
@@ -85,7 +85,7 @@ export class UcmBackendConnector {
85
85
  messageinfoArray.push(message);
86
86
  });
87
87
  const responseDetails = {
88
- statusCode: response.statusCode,
88
+ statusCode: Number(response.statusCode),
89
89
  data: {
90
90
  voicemailList: messageinfoArray,
91
91
  },
@@ -163,10 +163,11 @@ export class UcmBackendConnector {
163
163
  });
164
164
  const contentInfo = response?.body;
165
165
  const respHeaders = response.headers;
166
+ const statusCode = response.statusCode;
166
167
  const mediaType = respHeaders?.mediatype;
167
168
  const mediaContent = contentInfo;
168
169
  const responseDetails = {
169
- statusCode: response.statusCode,
170
+ statusCode: Number(statusCode),
170
171
  data: {
171
172
  voicemailContent: {
172
173
  type: mediaType,
@@ -175,6 +176,9 @@ export class UcmBackendConnector {
175
176
  },
176
177
  message: SUCCESS_MESSAGE,
177
178
  };
179
+ if (statusCode !== 200 && statusCode !== 202) {
180
+ responseDetails.message = FAILURE_MESSAGE;
181
+ }
178
182
  return responseDetails;
179
183
  }
180
184
  async voicemailMarkAsRead(messageId) {
@@ -195,7 +199,7 @@ export class UcmBackendConnector {
195
199
  },
196
200
  });
197
201
  const responseDetails = {
198
- statusCode: response.statusCode,
202
+ statusCode: Number(response.statusCode),
199
203
  data: {},
200
204
  message: SUCCESS_MESSAGE,
201
205
  };
@@ -225,7 +229,7 @@ export class UcmBackendConnector {
225
229
  },
226
230
  });
227
231
  const responseDetails = {
228
- statusCode: response.statusCode,
232
+ statusCode: Number(response.statusCode),
229
233
  data: {},
230
234
  message: SUCCESS_MESSAGE,
231
235
  };
@@ -252,7 +256,7 @@ export class UcmBackendConnector {
252
256
  },
253
257
  });
254
258
  const responseDetails = {
255
- statusCode: response.statusCode,
259
+ statusCode: Number(response.statusCode),
256
260
  data: {},
257
261
  message: SUCCESS_MESSAGE,
258
262
  };
@@ -114,7 +114,7 @@ export class WxCallBackendConnector {
114
114
  const mediaContent = mediaDetails.childNodes[2]?.textContent;
115
115
  log.info(`Media type is ${mediaType}`, loggerContext);
116
116
  const responseDetails = {
117
- statusCode: response.statusCode,
117
+ statusCode: Number(response.statusCode),
118
118
  data: {
119
119
  voicemailContent: {
120
120
  type: mediaType,
@@ -183,7 +183,7 @@ export class WxCallBackendConnector {
183
183
  method: HTTP_METHODS.PUT,
184
184
  });
185
185
  const responseDetails = {
186
- statusCode: response.statusCode,
186
+ statusCode: Number(response.statusCode),
187
187
  data: {},
188
188
  message: SUCCESS_MESSAGE,
189
189
  };
@@ -207,7 +207,7 @@ export class WxCallBackendConnector {
207
207
  method: HTTP_METHODS.PUT,
208
208
  });
209
209
  const responseDetails = {
210
- statusCode: response.statusCode,
210
+ statusCode: Number(response.statusCode),
211
211
  data: {},
212
212
  message: SUCCESS_MESSAGE,
213
213
  };
@@ -231,7 +231,7 @@ export class WxCallBackendConnector {
231
231
  method: HTTP_METHODS.DELETE,
232
232
  });
233
233
  const responseDetails = {
234
- statusCode: response.statusCode,
234
+ statusCode: Number(response.statusCode),
235
235
  data: {},
236
236
  message: SUCCESS_MESSAGE,
237
237
  };
@@ -259,7 +259,7 @@ export class WxCallBackendConnector {
259
259
  const status = xmlDOM.getElementsByTagName(TRANSCRIPT_STATUS)[0];
260
260
  const transcript = xmlDOM.getElementsByTagName(TRANSCRIPT_CONTENT)[0];
261
261
  const responseDetails = {
262
- statusCode: response.statusCode,
262
+ statusCode: Number(response.statusCode),
263
263
  data: {
264
264
  voicemailTranscript: transcript?.textContent,
265
265
  },
@@ -1,3 +1,4 @@
1
+ import { FAILURE_MESSAGE, UNPROCESSABLE_CONTENT_CODE } from '../common/constants';
1
2
  export const bwToken = 'bwtoken';
2
3
  export const broadworksTokenType = {
3
4
  body: {
@@ -259,6 +260,38 @@ const MOCK_VOICEMAIL_FIFTH_MESSAGE = {
259
260
  $: `${braodworksUserMessageInfo}/aa237e9e-211a-4a0a-bb58-2a931eca061d`,
260
261
  },
261
262
  };
263
+ export const getEmptyVoicemailListJsonBWRKS = {
264
+ statusCode: 200,
265
+ VoiceMessagingMessages: {
266
+ messageInfoList: {},
267
+ },
268
+ };
269
+ export const getInvalidVoicemailListJsonBWRKS = {
270
+ statusCode: 200,
271
+ VoiceMessagingMessages: {
272
+ messageInfoList: {
273
+ messageInfo: {},
274
+ },
275
+ },
276
+ };
277
+ export const getEmptyVoicemailListJsonWxC = {
278
+ statusCode: 200,
279
+ body: {
280
+ VoiceMessagingMessages: {
281
+ messageInfoList: {},
282
+ },
283
+ },
284
+ };
285
+ export const getInvalidVoicemailListJsonWxC = {
286
+ statusCode: 200,
287
+ body: {
288
+ VoiceMessagingMessages: {
289
+ messageInfoList: {
290
+ messageInfo: {},
291
+ },
292
+ },
293
+ },
294
+ };
262
295
  export const getVoicemailListJsonBWRKS = {
263
296
  statusCode: 200,
264
297
  VoiceMessagingMessages: {
@@ -381,6 +414,20 @@ export const mockUCMVoicemailBody = {
381
414
  items: [MOCK_UCM_VOICEMAIL_FIRST_MESSAGE],
382
415
  },
383
416
  };
417
+ export const mockVoicemailContentResponse = {
418
+ statusCode: 200,
419
+ headers: {
420
+ mediatype: 'audio/wav',
421
+ },
422
+ body: voicemailContent,
423
+ };
424
+ export const voicemailEventProcessingPayload = {
425
+ data: {
426
+ messageId: '1234567890',
427
+ eventType: 'processing',
428
+ status: 'waiting',
429
+ },
430
+ };
384
431
  export const getVoiceMailListJsonUCM = {
385
432
  statusCode: 200,
386
433
  body: {
@@ -407,6 +454,20 @@ export const getDescVoiceMailListJsonUCM = {
407
454
  },
408
455
  },
409
456
  };
457
+ export const responseDetails422 = {
458
+ data: { error: '422 Exception has occurred' },
459
+ message: FAILURE_MESSAGE,
460
+ statusCode: UNPROCESSABLE_CONTENT_CODE,
461
+ };
462
+ export const responseDetails204 = {
463
+ data: { error: '204 Exception has occurred' },
464
+ message: FAILURE_MESSAGE,
465
+ statusCode: 204,
466
+ };
467
+ export const resolveContactArgs = {
468
+ name: { $: 'test' },
469
+ address: { $: 'test address' },
470
+ };
410
471
  export const mockVoicemailTranscriptResponse = {
411
472
  body: '<?xml version="1.0" encoding="UTF-8"?>\n<VoiceMessageTranscript xmlns="http://schema.broadsoft.com/xsi"><status>READY</status><content lang="EN">Hi, uh, testing, voice mail script, so dropping this message to be able to fetch it later.</content></VoiceMessageTranscript>',
412
473
  statusCode: 200,
@@ -79,7 +79,7 @@ export function emitFinalFailure(emitterCb, loggerContext) {
79
79
  }
80
80
  export async function handleRegistrationErrors(err, emitterCb, loggerContext, restoreRegCb) {
81
81
  const lineError = createLineError('', {}, ERROR_TYPE.DEFAULT, LineStatus.INACTIVE);
82
- const errorCode = err.statusCode;
82
+ const errorCode = Number(err.statusCode);
83
83
  let finalError = false;
84
84
  log.warn(`Status code: -> ${errorCode}`, loggerContext);
85
85
  switch (errorCode) {
@@ -111,7 +111,7 @@ export async function handleRegistrationErrors(err, emitterCb, loggerContext, re
111
111
  emitterCb(lineError, finalError);
112
112
  return finalError;
113
113
  }
114
- const code = errorBody.errorCode;
114
+ const code = Number(errorBody.errorCode);
115
115
  log.warn(`Error code found : ${code}`, loggerContext);
116
116
  switch (code) {
117
117
  case DEVICE_ERROR_CODE.DEVICE_LIMIT_EXCEEDED: {
@@ -164,7 +164,7 @@ export async function handleRegistrationErrors(err, emitterCb, loggerContext, re
164
164
  }
165
165
  export async function handleCallingClientErrors(err, emitterCb, loggerContext) {
166
166
  const clientError = createClientError('', {}, ERROR_TYPE.DEFAULT, MobiusStatus.DEFAULT);
167
- const errorCode = err.statusCode;
167
+ const errorCode = Number(err.statusCode);
168
168
  const finalError = false;
169
169
  log.warn(`Status code: -> ${errorCode}`, loggerContext);
170
170
  switch (errorCode) {
@@ -188,7 +188,7 @@ export async function handleCallErrors(emitterCb, errorLayer, retryCb, correlati
188
188
  method: caller,
189
189
  };
190
190
  const callError = createCallError('', loggerContext, ERROR_TYPE.DEFAULT, '', errorLayer);
191
- const errorCode = err.statusCode;
191
+ const errorCode = Number(err.statusCode);
192
192
  log.warn(`Status code: ->${errorCode}`, loggerContext);
193
193
  switch (errorCode) {
194
194
  case ERROR_CODE.UNAUTHORIZED: {
@@ -209,12 +209,12 @@ export async function handleCallErrors(emitterCb, errorLayer, retryCb, correlati
209
209
  return;
210
210
  }
211
211
  if (err.headers && 'retry-after' in err.headers && retryCb) {
212
- const retryInterval = err.headers['retry-after'];
212
+ const retryInterval = Number(err.headers['retry-after']);
213
213
  log.warn(`Retry Interval received: ${retryInterval}`, loggerContext);
214
214
  retryCb(retryInterval);
215
215
  return;
216
216
  }
217
- const code = errorBody.errorCode;
217
+ const code = Number(errorBody.errorCode);
218
218
  let message;
219
219
  switch (code) {
220
220
  case CALL_ERROR_CODE.INVALID_STATUS_UPDATE: {
@@ -286,7 +286,7 @@ export async function handleCallErrors(emitterCb, errorLayer, retryCb, correlati
286
286
  }
287
287
  }
288
288
  export async function serviceErrorCodeHandler(err, loggerContext) {
289
- const errorCode = err.statusCode;
289
+ const errorCode = Number(err.statusCode);
290
290
  const failureMessage = 'FAILURE';
291
291
  switch (errorCode) {
292
292
  case ERROR_CODE.BAD_REQUEST: {
@@ -378,11 +378,11 @@ export async function serviceErrorCodeHandler(err, loggerContext) {
378
378
  return errorDetails;
379
379
  }
380
380
  default: {
381
- log.warn(`422 Exception has occurred`, loggerContext);
381
+ log.warn(`${errorCode || 422} Exception has occurred`, loggerContext);
382
382
  const errorDetails = {
383
- statusCode: 422,
383
+ statusCode: errorCode || 422,
384
384
  data: {
385
- error: '422 Exception has occurred',
385
+ error: `${errorCode || 422} Exception has occurred`,
386
386
  },
387
387
  message: failureMessage,
388
388
  };
@@ -16,6 +16,7 @@ export const SETTINGS = 'settings';
16
16
  export const STATUS_CODE = 'statusCode';
17
17
  export const SUCCESS_MESSAGE = 'SUCCESS';
18
18
  export const SUCCESS_STATUS_CODE = 200;
19
+ export const UNPROCESSABLE_CONTENT_CODE = 422;
19
20
  export const TIME = 'time';
20
21
  export const TOKEN = 'token';
21
22
  export const TRANSCRIPT = 'transcript';
package/package.json CHANGED
@@ -129,5 +129,5 @@
129
129
  "staticpath": "docs",
130
130
  "noprompt": true
131
131
  },
132
- "version": "0.0.1-next.5"
132
+ "version": "0.0.1-next.6"
133
133
  }