purecloud-platform-client-v2 136.1.0 → 137.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +9 -12
  2. package/dist/node/purecloud-platform-client-v2.js +9667 -9635
  3. package/dist/web-amd/purecloud-platform-client-v2.js +9667 -9635
  4. package/dist/web-amd/purecloud-platform-client-v2.min.js +1 -1
  5. package/dist/web-cjs/bundle.js +9674 -9635
  6. package/dist/web-cjs/purecloud-platform-client-v2.js +11469 -13867
  7. package/dist/web-cjs/purecloud-platform-client-v2.min.js +1 -1
  8. package/index.d.ts +92 -76
  9. package/package.json +2 -2
  10. package/src/purecloud-platform-client-v2/ApiClient.js +197 -169
  11. package/src/purecloud-platform-client-v2/api/AlertingApi.js +56 -56
  12. package/src/purecloud-platform-client-v2/api/AnalyticsApi.js +231 -231
  13. package/src/purecloud-platform-client-v2/api/ArchitectApi.js +534 -534
  14. package/src/purecloud-platform-client-v2/api/AuditApi.js +31 -31
  15. package/src/purecloud-platform-client-v2/api/AuthorizationApi.js +212 -212
  16. package/src/purecloud-platform-client-v2/api/BillingApi.js +12 -12
  17. package/src/purecloud-platform-client-v2/api/ChatApi.js +16 -16
  18. package/src/purecloud-platform-client-v2/api/CoachingApi.js +96 -96
  19. package/src/purecloud-platform-client-v2/api/ContentManagementApi.js +192 -192
  20. package/src/purecloud-platform-client-v2/api/ConversationsApi.js +808 -808
  21. package/src/purecloud-platform-client-v2/api/DataExtensionsApi.js +17 -17
  22. package/src/purecloud-platform-client-v2/api/ExternalContactsApi.js +337 -337
  23. package/src/purecloud-platform-client-v2/api/FaxApi.js +31 -31
  24. package/src/purecloud-platform-client-v2/api/FlowsApi.js +11 -11
  25. package/src/purecloud-platform-client-v2/api/GamificationApi.js +246 -246
  26. package/src/purecloud-platform-client-v2/api/GeneralDataProtectionRegulationApi.js +21 -21
  27. package/src/purecloud-platform-client-v2/api/GeolocationApi.js +26 -26
  28. package/src/purecloud-platform-client-v2/api/GreetingsApi.js +88 -88
  29. package/src/purecloud-platform-client-v2/api/GroupsApi.js +72 -72
  30. package/src/purecloud-platform-client-v2/api/IdentityProviderApi.js +171 -171
  31. package/src/purecloud-platform-client-v2/api/IntegrationsApi.js +311 -311
  32. package/src/purecloud-platform-client-v2/api/JourneyApi.js +146 -146
  33. package/src/purecloud-platform-client-v2/api/KnowledgeApi.js +131 -131
  34. package/src/purecloud-platform-client-v2/api/LanguageUnderstandingApi.js +151 -151
  35. package/src/purecloud-platform-client-v2/api/LanguagesApi.js +51 -51
  36. package/src/purecloud-platform-client-v2/api/LearningApi.js +107 -107
  37. package/src/purecloud-platform-client-v2/api/LicenseApi.js +49 -49
  38. package/src/purecloud-platform-client-v2/api/LocationsApi.js +41 -41
  39. package/src/purecloud-platform-client-v2/api/MessagingApi.js +26 -26
  40. package/src/purecloud-platform-client-v2/api/MobileDevicesApi.js +26 -26
  41. package/src/purecloud-platform-client-v2/api/NotificationsApi.js +43 -43
  42. package/src/purecloud-platform-client-v2/api/OAuthApi.js +67 -67
  43. package/src/purecloud-platform-client-v2/api/ObjectsApi.js +50 -50
  44. package/src/purecloud-platform-client-v2/api/OrganizationApi.js +81 -81
  45. package/src/purecloud-platform-client-v2/api/OrganizationAuthorizationApi.js +162 -162
  46. package/src/purecloud-platform-client-v2/api/OutboundApi.js +608 -608
  47. package/src/purecloud-platform-client-v2/api/PresenceApi.js +64 -64
  48. package/src/purecloud-platform-client-v2/api/QualityApi.js +285 -285
  49. package/src/purecloud-platform-client-v2/api/RecordingApi.js +302 -302
  50. package/src/purecloud-platform-client-v2/api/ResponseManagementApi.js +86 -86
  51. package/src/purecloud-platform-client-v2/api/RoutingApi.js +536 -536
  52. package/src/purecloud-platform-client-v2/api/SCIMApi.js +195 -195
  53. package/src/purecloud-platform-client-v2/api/ScriptsApi.js +66 -66
  54. package/src/purecloud-platform-client-v2/api/SearchApi.js +96 -96
  55. package/src/purecloud-platform-client-v2/api/SpeechTextAnalyticsApi.js +194 -194
  56. package/src/purecloud-platform-client-v2/api/StationsApi.js +28 -28
  57. package/src/purecloud-platform-client-v2/api/SuggestApi.js +21 -21
  58. package/src/purecloud-platform-client-v2/api/TelephonyApi.js +16 -16
  59. package/src/purecloud-platform-client-v2/api/TelephonyProvidersEdgeApi.js +657 -657
  60. package/src/purecloud-platform-client-v2/api/TextbotsApi.js +23 -23
  61. package/src/purecloud-platform-client-v2/api/TokensApi.js +21 -21
  62. package/src/purecloud-platform-client-v2/api/UploadsApi.js +26 -26
  63. package/src/purecloud-platform-client-v2/api/UsageApi.js +11 -11
  64. package/src/purecloud-platform-client-v2/api/UserRecordingsApi.js +31 -31
  65. package/src/purecloud-platform-client-v2/api/UsersApi.js +413 -413
  66. package/src/purecloud-platform-client-v2/api/UtilitiesApi.js +21 -21
  67. package/src/purecloud-platform-client-v2/api/VoicemailApi.js +140 -140
  68. package/src/purecloud-platform-client-v2/api/WebChatApi.js +97 -97
  69. package/src/purecloud-platform-client-v2/api/WebDeploymentsApi.js +66 -66
  70. package/src/purecloud-platform-client-v2/api/WebMessagingApi.js +6 -6
  71. package/src/purecloud-platform-client-v2/api/WidgetsApi.js +26 -26
  72. package/src/purecloud-platform-client-v2/api/WorkforceManagementApi.js +765 -765
  73. package/src/purecloud-platform-client-v2/index.js +2 -1
  74. package/src/purecloud-platform-client-v2/logger.js +17 -13
@@ -1,9 +1,9 @@
1
- import superagent from 'superagent';
1
+ import { default as axios } from 'axios';
2
2
  import Configuration from './configuration.js';
3
3
 
4
4
  /**
5
5
  * @module purecloud-platform-client-v2/ApiClient
6
- * @version 136.1.0
6
+ * @version 137.1.0
7
7
  */
8
8
  class ApiClient {
9
9
  /**
@@ -85,10 +85,9 @@ class ApiClient {
85
85
  * @type {Array.<String>}
86
86
  */
87
87
  this.authentications = {
88
- 'PureCloud OAuth': {type: 'oauth2'},
89
- 'Guest Chat JWT': {type: 'apiKey', 'in': 'header', name: 'Authorization'}
88
+ 'Guest Chat JWT': {type: 'apiKey', 'in': 'header', name: 'Authorization'},
89
+ 'PureCloud OAuth': {type: 'oauth2'}
90
90
  };
91
-
92
91
  /**
93
92
  * The default HTTP headers to be included for all API calls.
94
93
  * @type {Array.<String>}
@@ -106,9 +105,6 @@ class ApiClient {
106
105
  this.authData = {};
107
106
  this.settingsPrefix = 'purecloud';
108
107
 
109
- // Expose superagent module for use with superagent-proxy
110
- this.superagent = superagent;
111
-
112
108
  // Transparently request a new access token when it expires (Code Authorization only)
113
109
  this.refreshInProgress = false;
114
110
 
@@ -277,63 +273,65 @@ class ApiClient {
277
273
  return;
278
274
  }
279
275
 
280
- // Build token request
281
- var request = superagent('POST', `https://login.${this.config.environment}/oauth/token`);
282
- if (this.proxy && request.proxy) {
283
- request.proxy(this.proxy);
276
+ const headers = {
277
+ 'Authorization': `Basic ${authHeader}`
284
278
  }
285
- request.set('Authorization', `Basic ${authHeader}`);
286
- request.send('grant_type=client_credentials');
287
-
288
- // Execute request
289
- request.end((error, response) => {
290
- if (error) {
291
- // Log error
292
- this.config.logger.log(
293
- 'error',
294
- response.statusCode,
295
- 'POST',
296
- `https://login.${this.config.environment}/oauth/token`,
297
- request.header,
298
- response.headers,
299
- { grant_type: 'client_credentials' },
300
- response.body
301
- );
302
- reject(error);
303
- } else {
279
+ axios({
280
+ method: `POST`,
281
+ url: `https://login.${this.config.environment}/oauth/token`,
282
+ headers: headers,
283
+ data: 'grant_type=client_credentials',
284
+ proxy: this.proxy
285
+ })
286
+ .then((response) => {
304
287
  // Logging
305
288
  this.config.logger.log(
306
289
  'trace',
307
- response.statusCode,
290
+ response.status,
308
291
  'POST',
309
292
  `https://login.${this.config.environment}/oauth/token`,
310
- request.header,
293
+ headers,
311
294
  response.headers,
312
295
  { grant_type: 'client_credentials' },
313
296
  undefined
314
297
  );
315
298
  this.config.logger.log(
316
299
  'debug',
317
- response.statusCode,
300
+ response.status,
318
301
  'POST',
319
302
  `https://login.${this.config.environment}/oauth/token`,
320
- request.header,
303
+ headers,
321
304
  undefined,
322
305
  { grant_type: 'client_credentials' },
323
306
  undefined
324
307
  );
325
308
 
326
309
  // Save access token
327
- this.setAccessToken(response.body['access_token']);
310
+ this.setAccessToken(response.data['access_token']);
328
311
 
329
312
  // Set expiry time
330
- this.authData.tokenExpiryTime = (new Date()).getTime() + (response.body['expires_in'] * 1000);
313
+ this.authData.tokenExpiryTime = (new Date()).getTime() + (response.data['expires_in'] * 1000);
331
314
  this.authData.tokenExpiryTimeString = (new Date(this.authData.tokenExpiryTime)).toUTCString();
332
315
 
333
316
  // Return auth data
334
317
  resolve(this.authData);
335
- }
336
- });
318
+ })
319
+ .catch((error) => {
320
+ // Log error
321
+ if (error.response) {
322
+ this.config.logger.log(
323
+ 'error',
324
+ error.response.status,
325
+ 'POST',
326
+ `https://login.${this.config.environment}/oauth/token`,
327
+ headers,
328
+ error.response.headers,
329
+ { grant_type: 'client_credentials' },
330
+ error.response.data
331
+ );
332
+ }
333
+ reject(error);
334
+ });
337
335
  });
338
336
  }
339
337
 
@@ -356,6 +354,7 @@ class ApiClient {
356
354
  { grant_type: 'urn:ietf:params:oauth:grant-type:saml2-bearer' },
357
355
  { orgName: orgName },
358
356
  { assertion: assertion });
357
+ request.proxy = this.proxy;
359
358
  var bodyParam = {
360
359
  grant_type: 'urn:ietf:params:oauth:grant-type:saml2-bearer',
361
360
  orgName: orgName,
@@ -363,54 +362,56 @@ class ApiClient {
363
362
  };
364
363
 
365
364
  // Handle response
366
- request.end((error, response) => {
367
- if (error) {
368
- // Log error
369
- this.config.logger.log(
370
- 'error',
371
- response.statusCode,
372
- 'POST',
373
- `https://login.${this.config.environment}/oauth/token`,
374
- request.header,
375
- response.headers,
376
- bodyParam,
377
- response.body
378
- );
379
- reject(error);
380
- } else {
365
+ request
366
+ .then((response) => {
381
367
  // Logging
382
368
  this.config.logger.log(
383
369
  'trace',
384
- response.statusCode,
370
+ response.status,
385
371
  'POST',
386
372
  `https://login.${this.config.environment}/oauth/token`,
387
- request.header,
373
+ request.headers,
388
374
  response.headers,
389
375
  bodyParam,
390
376
  undefined
391
377
  );
392
378
  this.config.logger.log(
393
379
  'debug',
394
- response.statusCode,
380
+ response.status,
395
381
  'POST',
396
382
  `https://login.${this.config.environment}/oauth/token`,
397
- request.header,
383
+ request.headers,
398
384
  undefined,
399
385
  bodyParam,
400
386
  undefined
401
387
  );
402
388
 
403
389
  // Get access token from response
404
- var access_token = response.body.access_token;
390
+ var access_token = response.data.access_token;
405
391
 
406
392
  this.setAccessToken(access_token);
407
- this.authData.tokenExpiryTime = new Date().getTime() + response.body['expires_in'] * 1000;
393
+ this.authData.tokenExpiryTime = new Date().getTime() + response.data['expires_in'] * 1000;
408
394
  this.authData.tokenExpiryTimeString = new Date(this.authData.tokenExpiryTime).toUTCString();
409
395
 
410
396
  // Return auth data
411
397
  resolve(this.authData);
412
- }
413
- });
398
+ })
399
+ .catch((error) => {
400
+ // Log error
401
+ if (error.response) {
402
+ this.config.logger.log(
403
+ 'error',
404
+ error.response.status,
405
+ 'POST',
406
+ `https://login.${this.config.environment}/oauth/token`,
407
+ request.headers,
408
+ error.response.headers,
409
+ bodyParam,
410
+ error.response.data
411
+ );
412
+ }
413
+ reject(error);
414
+ });
414
415
  });
415
416
  }
416
417
 
@@ -434,6 +435,7 @@ class ApiClient {
434
435
  { grant_type: 'authorization_code' },
435
436
  { code: authCode },
436
437
  { redirect_uri: redirectUri });
438
+ request.proxy = this.proxy;
437
439
  var bodyParam = {
438
440
  grant_type: 'authorization_code',
439
441
  code: authCode,
@@ -459,6 +461,7 @@ class ApiClient {
459
461
  }
460
462
  var encodedData = Buffer.from(clientId + ':' + clientSecret).toString('base64');
461
463
  var request = this._formAuthRequest(encodedData, { grant_type: 'refresh_token' }, { refresh_token: refreshToken });
464
+ request.proxy = this.proxy;
462
465
  var bodyParam = {
463
466
  grant_type: 'refresh_token',
464
467
  refresh_token: refreshToken,
@@ -476,57 +479,59 @@ class ApiClient {
476
479
  * @param {function} reject - Promise reject callback
477
480
  */
478
481
  _handleCodeAuthorizationResponse(request, bodyParam, resolve, reject) {
479
- request.end((error, response) => {
480
- if (error) {
481
- // Log error
482
- this.config.logger.log(
483
- 'error',
484
- response.statusCode,
485
- 'POST',
486
- `https://login.${this.config.environment}/oauth/token`,
487
- request.header,
488
- response.headers,
489
- bodyParam,
490
- response.body
491
- );
492
-
493
- reject(error);
494
- } else {
482
+ request
483
+ .then((response) => {
495
484
  // Logging
496
485
  this.config.logger.log(
497
486
  'trace',
498
- response.statusCode,
487
+ response.status,
499
488
  'POST',
500
489
  `https://login.${this.config.environment}/oauth/token`,
501
- request.header,
490
+ request.headers,
502
491
  response.headers,
503
492
  bodyParam,
504
493
  undefined
505
494
  );
506
495
  this.config.logger.log(
507
496
  'debug',
508
- response.statusCode,
497
+ response.status,
509
498
  'POST',
510
499
  `https://login.${this.config.environment}/oauth/token`,
511
- request.header,
500
+ request.headers,
512
501
  undefined,
513
502
  bodyParam,
514
503
  undefined
515
504
  );
516
505
 
517
506
  // Get access token from response
518
- var access_token = response.body.access_token;
519
- var refresh_token = response.body.refresh_token;
507
+ var access_token = response.data.access_token;
508
+ var refresh_token = response.data.refresh_token;
520
509
 
521
510
  this.setAccessToken(access_token);
522
511
  this.authData.refreshToken = refresh_token;
523
- this.authData.tokenExpiryTime = new Date().getTime() + response.body['expires_in'] * 1000;
512
+ this.authData.tokenExpiryTime = new Date().getTime() + response.data['expires_in'] * 1000;
524
513
  this.authData.tokenExpiryTimeString = new Date(this.authData.tokenExpiryTime).toUTCString();
525
514
 
526
515
  // Return auth data
527
516
  resolve(this.authData);
528
- }
529
- });
517
+ })
518
+ .catch((error) => {
519
+ // Log error
520
+ if (error.response) {
521
+ this.config.logger.log(
522
+ 'error',
523
+ error.response.status,
524
+ 'POST',
525
+ `https://login.${this.config.environment}/oauth/token`,
526
+ request.headers,
527
+ error.response.headers,
528
+ bodyParam,
529
+ error.response.data
530
+ );
531
+ }
532
+
533
+ reject(error);
534
+ });
530
535
  }
531
536
 
532
537
  /**
@@ -534,15 +539,15 @@ class ApiClient {
534
539
  * @param {string} encodedData - Base64 encoded client and clientSecret pair
535
540
  */
536
541
  _formAuthRequest(encodedData) {
537
- var request = superagent('POST', `https://login.${this.config.environment}/oauth/token`);
538
- // Set the headers
539
- request.set('Authorization', 'Basic ' + encodedData);
540
- request.set('Content-Type', 'application/x-www-form-urlencoded');
541
- // Add form data
542
- request.type('form');
543
- for (var i = 0; i < arguments.length; i++) {
544
- request.send(arguments[i]);
545
- }
542
+ var request = axios({
543
+ method: `POST`,
544
+ url: `https://login.${this.config.environment}/oauth/token`,
545
+ headers: {
546
+ 'Authorization': 'Basic ' + encodedData,
547
+ 'Content-Type': 'application/x-www-form-urlencoded'
548
+ },
549
+ data: arguments
550
+ });
546
551
 
547
552
  return request;
548
553
  }
@@ -743,6 +748,36 @@ class ApiClient {
743
748
  return param.toString();
744
749
  }
745
750
 
751
+ /**
752
+ * Returns query parameters serialized in the format needed for an axios request.
753
+ * @param param The unserialized query parameters.
754
+ * @returns {Object} The serialized representation the query parameters.
755
+ */
756
+ serialize(obj) {
757
+ var result = {};
758
+ for (var p in obj) {
759
+ if (obj.hasOwnProperty(p)) {
760
+ result[encodeURIComponent(p)] = Array.isArray(obj[p]) ? obj[p].join(",") : this.paramToString(obj[p]);
761
+ }
762
+ }
763
+ return result
764
+ }
765
+
766
+ /**
767
+ * Adds headers onto an existing header object (may be empty)
768
+ * @param existingHeaders The existing header object.
769
+ * @param newHeaders New headers.
770
+ * @returns {Object} The combination of all headers.
771
+ */
772
+ addHeaders(existingHeaders, ...newHeaders) {
773
+ if (existingHeaders) {
774
+ existingHeaders = Object.assign(existingHeaders, ...newHeaders);
775
+ } else {
776
+ existingHeaders = Object.assign(...newHeaders);
777
+ }
778
+ return existingHeaders;
779
+ }
780
+
746
781
  /**
747
782
  * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values.
748
783
  * NOTE: query parameters are not handled here.
@@ -869,7 +904,7 @@ class ApiClient {
869
904
  case 'pipes':
870
905
  return param.map(this.paramToString).join('|');
871
906
  case 'multi':
872
- // return the array directly as SuperAgent will handle it as expected
907
+ // return the array directly as axios will handle it as expected
873
908
  return param.map(this.paramToString);
874
909
  default:
875
910
  throw new Error(`Unknown collection format: ${collectionFormat}`);
@@ -878,7 +913,7 @@ class ApiClient {
878
913
 
879
914
  /**
880
915
  * Applies authentication headers to the request.
881
- * @param {Object} request The request object created by a <code>superagent()</code> call.
916
+ * @param {Object} request The axios request config object.
882
917
  * @param {Array.<String>} authNames An array of authentication method names.
883
918
  */
884
919
  applyAuthToRequest(request, authNames) {
@@ -887,7 +922,10 @@ class ApiClient {
887
922
  switch (auth.type) {
888
923
  case 'basic':
889
924
  if (auth.username || auth.password) {
890
- request.auth(auth.username || '', auth.password || '');
925
+ request.auth = {
926
+ username: auth.username || '',
927
+ password: auth.password || ''
928
+ };
891
929
  }
892
930
  break;
893
931
  case 'apiKey':
@@ -899,15 +937,15 @@ class ApiClient {
899
937
  data[auth.name] = auth.apiKey;
900
938
  }
901
939
  if (auth['in'] === 'header') {
902
- request.set(data);
940
+ request.headers = this.addHeaders(request.headers, data);
903
941
  } else {
904
- request.query(data);
942
+ request.params = this.serialize(data);
905
943
  }
906
944
  }
907
945
  break;
908
946
  case 'oauth2':
909
947
  if (auth.accessToken) {
910
- request.set({'Authorization': `Bearer ${auth.accessToken}`});
948
+ request.headers = this.addHeaders(request.headers, {'Authorization': `Bearer ${auth.accessToken}`});
911
949
  }
912
950
  break;
913
951
  default:
@@ -936,86 +974,71 @@ class ApiClient {
936
974
  sendRequest(this);
937
975
  function sendRequest(that) {
938
976
  var url = that.buildUrl(path, pathParams);
939
- var request = superagent(httpMethod, url);
940
-
941
- if (that.proxy && request.proxy) {
942
- request.proxy(that.proxy);
943
- }
977
+ var request = {
978
+ method: httpMethod,
979
+ url: url,
980
+ proxy: that.proxy,
981
+ timeout: that.timeout,
982
+ params: that.serialize(queryParams)
983
+ };
944
984
 
945
985
  // apply authentications
946
986
  that.applyAuthToRequest(request, authNames);
947
987
 
948
- // set query parameters
949
- request.query(that.normalizeParams(queryParams));
950
-
951
988
  // set header parameters
952
- request.set(that.defaultHeaders).set(that.normalizeParams(headerParams));
953
- //request.set({ 'purecloud-sdk': '136.1.0' });
954
-
955
- // set request timeout
956
- request.timeout(that.timeout);
989
+ const defaultHeaders = that.defaultHeaders;
990
+ const normalizedHeaderParams = that.normalizeParams(headerParams);
991
+ request.headers = that.addHeaders(request.headers, defaultHeaders, normalizedHeaderParams);
957
992
 
958
993
  var contentType = that.jsonPreferredMime(contentTypes);
959
994
  if (contentType) {
960
- request.type(contentType);
961
- } else if (!request.header['Content-Type']) {
962
- request.type('application/json');
995
+ request.headers['Content-Type'] = contentType;
996
+ } else if (!request.headers['Content-Type']) {
997
+ request.headers['Content-Type'] = 'application/json';
963
998
  }
964
999
 
965
1000
  if (contentType === 'application/x-www-form-urlencoded') {
966
- request.send(that.normalizeParams(formParams));
1001
+ request.data = that.normalizeParams(formParams);
967
1002
  } else if (contentType == 'multipart/form-data') {
968
1003
  var _formParams = that.normalizeParams(formParams);
969
1004
  for (var key in _formParams) {
970
1005
  if (_formParams.hasOwnProperty(key)) {
971
- if (that.isFileParam(_formParams[key])) {
972
- // file field
973
- request.attach(key, _formParams[key]);
974
- } else {
975
- request.field(key, _formParams[key]);
976
- }
1006
+ // Looks like axios handles files and forms the same way
1007
+ var formData = new FormData();
1008
+ formData.set(key, _formParams[key]);
1009
+ request.data = formData;
977
1010
  }
978
1011
  }
979
1012
  } else if (bodyParam) {
980
- request.send(bodyParam);
1013
+ request.data = bodyParam;
981
1014
  }
982
1015
 
983
1016
  var accept = that.jsonPreferredMime(accepts);
984
1017
  if (accept) {
985
- request.accept(accept);
1018
+ request.headers['Accept'] = accept;
986
1019
  }
987
- request.end((error, response) => {
988
- if (error) {
989
- if (!response) {
990
- reject({
991
- status: 0,
992
- statusText: 'error',
993
- headers: [],
994
- body: {},
995
- text: 'error',
996
- error: error
997
- });
998
- return;
999
- }
1000
- }
1001
-
1002
- // Build response object
1003
- var data = (that.returnExtended === true || error) ? {
1004
- status: response.status,
1005
- statusText: response.statusText,
1006
- headers: response.headers,
1007
- body: response.body,
1008
- text: response.text,
1009
- error: error
1010
- } : response.body ? response.body : response.text;
1011
-
1012
- // Debug logging
1013
- that.config.logger.log('trace', response.statusCode, httpMethod, url, request.header, response.headers, bodyParam, undefined);
1014
- that.config.logger.log('debug', response.statusCode, httpMethod, url, request.header, undefined, bodyParam, undefined);
1015
-
1016
- // Resolve promise
1017
- if (error) {
1018
- if (data.status == 401 && that.config.refresh_access_token && that.authData.refreshToken !== "") {
1020
+ axios.request(request)
1021
+ .then((response) => {
1022
+ // Build response object
1023
+ var data = (that.returnExtended === true) ? {
1024
+ status: response.status,
1025
+ statusText: response.statusText,
1026
+ headers: response.headers,
1027
+ body: response.data,
1028
+ text: response.text,
1029
+ error: null
1030
+ } : response.data ? response.data : response.text;
1031
+
1032
+ // Debug logging
1033
+ that.config.logger.log('trace', response.status, httpMethod, url, request.headers, response.headers, bodyParam, undefined);
1034
+ that.config.logger.log('debug', response.status, httpMethod, url, request.headers, undefined, bodyParam, undefined);
1035
+
1036
+ // Resolve promise
1037
+ resolve(data);
1038
+ })
1039
+ .catch((error) => {
1040
+ var data = error
1041
+ if (error.response && error.response.status == 401 && that.config.refresh_access_token && that.authData.refreshToken !== "") {
1019
1042
  that._handleExpiredAccessToken()
1020
1043
  .then(() => {
1021
1044
  sendRequest(that);
@@ -1023,24 +1046,29 @@ class ApiClient {
1023
1046
  .catch((err) => {
1024
1047
  reject(err);
1025
1048
  });
1026
- } else {
1049
+ } else if (error.response) {
1027
1050
  // Log error
1028
1051
  that.config.logger.log(
1029
1052
  'error',
1030
- response.statusCode,
1053
+ error.response.status,
1031
1054
  httpMethod,
1032
1055
  url,
1033
- request.header,
1034
- response.headers,
1056
+ request.headers,
1057
+ error.response.headers,
1035
1058
  bodyParam,
1036
- response.body
1059
+ error.response.data
1037
1060
  );
1038
- reject(data);
1061
+ data = (that.returnExtended === true) ? {
1062
+ status: error.response.status,
1063
+ statusText: error.response.statusText,
1064
+ headers: error.response.headers,
1065
+ body: error.response.data,
1066
+ text: error.response.text,
1067
+ error: error
1068
+ } : error.response.data ? error.response.data : error.response.text;
1039
1069
  }
1040
- } else {
1041
- resolve(data);
1042
- }
1043
- });
1070
+ reject(data);
1071
+ });
1044
1072
  }
1045
1073
  });
1046
1074
  }