purecloud-platform-client-v2 137.0.1 → 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 +277 -253
  3. package/dist/web-amd/purecloud-platform-client-v2.js +277 -253
  4. package/dist/web-amd/purecloud-platform-client-v2.min.js +1 -1
  5. package/dist/web-cjs/bundle.js +277 -253
  6. package/dist/web-cjs/purecloud-platform-client-v2.js +2067 -4480
  7. package/dist/web-cjs/purecloud-platform-client-v2.min.js +1 -1
  8. package/index.d.ts +0 -1
  9. package/package.json +2 -2
  10. package/src/purecloud-platform-client-v2/ApiClient.js +195 -176
  11. package/src/purecloud-platform-client-v2/api/AlertingApi.js +1 -1
  12. package/src/purecloud-platform-client-v2/api/AnalyticsApi.js +1 -1
  13. package/src/purecloud-platform-client-v2/api/ArchitectApi.js +1 -1
  14. package/src/purecloud-platform-client-v2/api/AuditApi.js +1 -1
  15. package/src/purecloud-platform-client-v2/api/AuthorizationApi.js +1 -1
  16. package/src/purecloud-platform-client-v2/api/BillingApi.js +1 -1
  17. package/src/purecloud-platform-client-v2/api/ChatApi.js +1 -1
  18. package/src/purecloud-platform-client-v2/api/CoachingApi.js +1 -1
  19. package/src/purecloud-platform-client-v2/api/ContentManagementApi.js +1 -1
  20. package/src/purecloud-platform-client-v2/api/ConversationsApi.js +1 -1
  21. package/src/purecloud-platform-client-v2/api/DataExtensionsApi.js +1 -1
  22. package/src/purecloud-platform-client-v2/api/ExternalContactsApi.js +1 -1
  23. package/src/purecloud-platform-client-v2/api/FaxApi.js +1 -1
  24. package/src/purecloud-platform-client-v2/api/FlowsApi.js +1 -1
  25. package/src/purecloud-platform-client-v2/api/GamificationApi.js +1 -1
  26. package/src/purecloud-platform-client-v2/api/GeneralDataProtectionRegulationApi.js +1 -1
  27. package/src/purecloud-platform-client-v2/api/GeolocationApi.js +1 -1
  28. package/src/purecloud-platform-client-v2/api/GreetingsApi.js +1 -1
  29. package/src/purecloud-platform-client-v2/api/GroupsApi.js +1 -1
  30. package/src/purecloud-platform-client-v2/api/IdentityProviderApi.js +1 -1
  31. package/src/purecloud-platform-client-v2/api/IntegrationsApi.js +1 -1
  32. package/src/purecloud-platform-client-v2/api/JourneyApi.js +1 -1
  33. package/src/purecloud-platform-client-v2/api/KnowledgeApi.js +1 -1
  34. package/src/purecloud-platform-client-v2/api/LanguageUnderstandingApi.js +1 -1
  35. package/src/purecloud-platform-client-v2/api/LanguagesApi.js +1 -1
  36. package/src/purecloud-platform-client-v2/api/LearningApi.js +1 -1
  37. package/src/purecloud-platform-client-v2/api/LicenseApi.js +1 -1
  38. package/src/purecloud-platform-client-v2/api/LocationsApi.js +1 -1
  39. package/src/purecloud-platform-client-v2/api/MessagingApi.js +1 -1
  40. package/src/purecloud-platform-client-v2/api/MobileDevicesApi.js +1 -1
  41. package/src/purecloud-platform-client-v2/api/NotificationsApi.js +1 -1
  42. package/src/purecloud-platform-client-v2/api/OAuthApi.js +1 -1
  43. package/src/purecloud-platform-client-v2/api/ObjectsApi.js +1 -1
  44. package/src/purecloud-platform-client-v2/api/OrganizationApi.js +1 -1
  45. package/src/purecloud-platform-client-v2/api/OrganizationAuthorizationApi.js +1 -1
  46. package/src/purecloud-platform-client-v2/api/OutboundApi.js +1 -1
  47. package/src/purecloud-platform-client-v2/api/PresenceApi.js +1 -1
  48. package/src/purecloud-platform-client-v2/api/QualityApi.js +1 -1
  49. package/src/purecloud-platform-client-v2/api/RecordingApi.js +1 -1
  50. package/src/purecloud-platform-client-v2/api/ResponseManagementApi.js +1 -1
  51. package/src/purecloud-platform-client-v2/api/RoutingApi.js +1 -1
  52. package/src/purecloud-platform-client-v2/api/SCIMApi.js +1 -1
  53. package/src/purecloud-platform-client-v2/api/ScriptsApi.js +1 -1
  54. package/src/purecloud-platform-client-v2/api/SearchApi.js +1 -1
  55. package/src/purecloud-platform-client-v2/api/SpeechTextAnalyticsApi.js +1 -1
  56. package/src/purecloud-platform-client-v2/api/StationsApi.js +1 -1
  57. package/src/purecloud-platform-client-v2/api/SuggestApi.js +1 -1
  58. package/src/purecloud-platform-client-v2/api/TelephonyApi.js +1 -1
  59. package/src/purecloud-platform-client-v2/api/TelephonyProvidersEdgeApi.js +1 -1
  60. package/src/purecloud-platform-client-v2/api/TextbotsApi.js +1 -1
  61. package/src/purecloud-platform-client-v2/api/TokensApi.js +1 -1
  62. package/src/purecloud-platform-client-v2/api/UploadsApi.js +1 -1
  63. package/src/purecloud-platform-client-v2/api/UsageApi.js +1 -1
  64. package/src/purecloud-platform-client-v2/api/UserRecordingsApi.js +1 -1
  65. package/src/purecloud-platform-client-v2/api/UsersApi.js +1 -1
  66. package/src/purecloud-platform-client-v2/api/UtilitiesApi.js +1 -1
  67. package/src/purecloud-platform-client-v2/api/VoicemailApi.js +1 -1
  68. package/src/purecloud-platform-client-v2/api/WebChatApi.js +1 -1
  69. package/src/purecloud-platform-client-v2/api/WebDeploymentsApi.js +1 -1
  70. package/src/purecloud-platform-client-v2/api/WebMessagingApi.js +1 -1
  71. package/src/purecloud-platform-client-v2/api/WidgetsApi.js +1 -1
  72. package/src/purecloud-platform-client-v2/api/WorkforceManagementApi.js +1 -1
  73. package/src/purecloud-platform-client-v2/index.js +1 -1
  74. package/src/purecloud-platform-client-v2/logger.js +17 -13
package/index.d.ts CHANGED
@@ -7,7 +7,6 @@ declare module 'purecloud-platform-client-v2' {
7
7
  declare class ApiClientClass {
8
8
  instance: ApiClientClass;
9
9
  proxy: ProxyConfig;
10
- superagent: any;
11
10
  config: Configuration;
12
11
 
13
12
  callApi(path: string, httpMethod: string, pathParams: { [key: string]: string; }, queryParams: { [key: string]: object; }, headerParams: { [key: string]: object; }, formParams: { [key: string]: object; }, bodyParam: any, authNames: Array<string>, contentTypes: Array<string>, accepts: Array<string>): Promise<any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "purecloud-platform-client-v2",
3
- "version": "137.0.1",
3
+ "version": "137.1.0",
4
4
  "description": "A JavaScript library to interface with the PureCloud Platform API",
5
5
  "license": "MIT",
6
6
  "main": "dist/node/purecloud-platform-client-v2.js",
@@ -30,8 +30,8 @@
30
30
  "url": "https://developer.mypurecloud.com"
31
31
  },
32
32
  "dependencies": {
33
+ "axios": "^0.27.2",
33
34
  "configparser": "^0.3.9",
34
- "superagent": "^7.1.1",
35
35
  "winston": "^3.6.0"
36
36
  },
37
37
  "devDependencies": {
@@ -1,10 +1,9 @@
1
-
2
- import superagent from 'superagent';
1
+ import { default as axios } from 'axios';
3
2
  import Configuration from './configuration.js';
4
3
 
5
4
  /**
6
5
  * @module purecloud-platform-client-v2/ApiClient
7
- * @version 137.0.1
6
+ * @version 137.1.0
8
7
  */
9
8
  class ApiClient {
10
9
  /**
@@ -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,9 +354,7 @@ class ApiClient {
356
354
  { grant_type: 'urn:ietf:params:oauth:grant-type:saml2-bearer' },
357
355
  { orgName: orgName },
358
356
  { assertion: assertion });
359
- if (this.proxy && request.proxy) {
360
- request.proxy(this.proxy);
361
- }
357
+ request.proxy = this.proxy;
362
358
  var bodyParam = {
363
359
  grant_type: 'urn:ietf:params:oauth:grant-type:saml2-bearer',
364
360
  orgName: orgName,
@@ -366,54 +362,56 @@ class ApiClient {
366
362
  };
367
363
 
368
364
  // Handle response
369
- request.end((error, response) => {
370
- if (error) {
371
- // Log error
372
- this.config.logger.log(
373
- 'error',
374
- response.statusCode,
375
- 'POST',
376
- `https://login.${this.config.environment}/oauth/token`,
377
- request.header,
378
- response.headers,
379
- bodyParam,
380
- response.body
381
- );
382
- reject(error);
383
- } else {
365
+ request
366
+ .then((response) => {
384
367
  // Logging
385
368
  this.config.logger.log(
386
369
  'trace',
387
- response.statusCode,
370
+ response.status,
388
371
  'POST',
389
372
  `https://login.${this.config.environment}/oauth/token`,
390
- request.header,
373
+ request.headers,
391
374
  response.headers,
392
375
  bodyParam,
393
376
  undefined
394
377
  );
395
378
  this.config.logger.log(
396
379
  'debug',
397
- response.statusCode,
380
+ response.status,
398
381
  'POST',
399
382
  `https://login.${this.config.environment}/oauth/token`,
400
- request.header,
383
+ request.headers,
401
384
  undefined,
402
385
  bodyParam,
403
386
  undefined
404
387
  );
405
388
 
406
389
  // Get access token from response
407
- var access_token = response.body.access_token;
390
+ var access_token = response.data.access_token;
408
391
 
409
392
  this.setAccessToken(access_token);
410
- this.authData.tokenExpiryTime = new Date().getTime() + response.body['expires_in'] * 1000;
393
+ this.authData.tokenExpiryTime = new Date().getTime() + response.data['expires_in'] * 1000;
411
394
  this.authData.tokenExpiryTimeString = new Date(this.authData.tokenExpiryTime).toUTCString();
412
395
 
413
396
  // Return auth data
414
397
  resolve(this.authData);
415
- }
416
- });
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
+ });
417
415
  });
418
416
  }
419
417
 
@@ -437,9 +435,7 @@ class ApiClient {
437
435
  { grant_type: 'authorization_code' },
438
436
  { code: authCode },
439
437
  { redirect_uri: redirectUri });
440
- if (this.proxy && request.proxy) {
441
- request.proxy(this.proxy);
442
- }
438
+ request.proxy = this.proxy;
443
439
  var bodyParam = {
444
440
  grant_type: 'authorization_code',
445
441
  code: authCode,
@@ -465,9 +461,7 @@ class ApiClient {
465
461
  }
466
462
  var encodedData = Buffer.from(clientId + ':' + clientSecret).toString('base64');
467
463
  var request = this._formAuthRequest(encodedData, { grant_type: 'refresh_token' }, { refresh_token: refreshToken });
468
- if (this.proxy && request.proxy) {
469
- request.proxy(this.proxy);
470
- }
464
+ request.proxy = this.proxy;
471
465
  var bodyParam = {
472
466
  grant_type: 'refresh_token',
473
467
  refresh_token: refreshToken,
@@ -485,57 +479,59 @@ class ApiClient {
485
479
  * @param {function} reject - Promise reject callback
486
480
  */
487
481
  _handleCodeAuthorizationResponse(request, bodyParam, resolve, reject) {
488
- request.end((error, response) => {
489
- if (error) {
490
- // Log error
491
- this.config.logger.log(
492
- 'error',
493
- response.statusCode,
494
- 'POST',
495
- `https://login.${this.config.environment}/oauth/token`,
496
- request.header,
497
- response.headers,
498
- bodyParam,
499
- response.body
500
- );
501
-
502
- reject(error);
503
- } else {
482
+ request
483
+ .then((response) => {
504
484
  // Logging
505
485
  this.config.logger.log(
506
486
  'trace',
507
- response.statusCode,
487
+ response.status,
508
488
  'POST',
509
489
  `https://login.${this.config.environment}/oauth/token`,
510
- request.header,
490
+ request.headers,
511
491
  response.headers,
512
492
  bodyParam,
513
493
  undefined
514
494
  );
515
495
  this.config.logger.log(
516
496
  'debug',
517
- response.statusCode,
497
+ response.status,
518
498
  'POST',
519
499
  `https://login.${this.config.environment}/oauth/token`,
520
- request.header,
500
+ request.headers,
521
501
  undefined,
522
502
  bodyParam,
523
503
  undefined
524
504
  );
525
505
 
526
506
  // Get access token from response
527
- var access_token = response.body.access_token;
528
- var refresh_token = response.body.refresh_token;
507
+ var access_token = response.data.access_token;
508
+ var refresh_token = response.data.refresh_token;
529
509
 
530
510
  this.setAccessToken(access_token);
531
511
  this.authData.refreshToken = refresh_token;
532
- this.authData.tokenExpiryTime = new Date().getTime() + response.body['expires_in'] * 1000;
512
+ this.authData.tokenExpiryTime = new Date().getTime() + response.data['expires_in'] * 1000;
533
513
  this.authData.tokenExpiryTimeString = new Date(this.authData.tokenExpiryTime).toUTCString();
534
514
 
535
515
  // Return auth data
536
516
  resolve(this.authData);
537
- }
538
- });
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
+ });
539
535
  }
540
536
 
541
537
  /**
@@ -543,15 +539,15 @@ class ApiClient {
543
539
  * @param {string} encodedData - Base64 encoded client and clientSecret pair
544
540
  */
545
541
  _formAuthRequest(encodedData) {
546
- var request = superagent('POST', `https://login.${this.config.environment}/oauth/token`);
547
- // Set the headers
548
- request.set('Authorization', 'Basic ' + encodedData);
549
- request.set('Content-Type', 'application/x-www-form-urlencoded');
550
- // Add form data
551
- request.type('form');
552
- for (var i = 0; i < arguments.length; i++) {
553
- request.send(arguments[i]);
554
- }
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
+ });
555
551
 
556
552
  return request;
557
553
  }
@@ -752,6 +748,36 @@ class ApiClient {
752
748
  return param.toString();
753
749
  }
754
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
+
755
781
  /**
756
782
  * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values.
757
783
  * NOTE: query parameters are not handled here.
@@ -878,7 +904,7 @@ class ApiClient {
878
904
  case 'pipes':
879
905
  return param.map(this.paramToString).join('|');
880
906
  case 'multi':
881
- // return the array directly as SuperAgent will handle it as expected
907
+ // return the array directly as axios will handle it as expected
882
908
  return param.map(this.paramToString);
883
909
  default:
884
910
  throw new Error(`Unknown collection format: ${collectionFormat}`);
@@ -887,7 +913,7 @@ class ApiClient {
887
913
 
888
914
  /**
889
915
  * Applies authentication headers to the request.
890
- * @param {Object} request The request object created by a <code>superagent()</code> call.
916
+ * @param {Object} request The axios request config object.
891
917
  * @param {Array.<String>} authNames An array of authentication method names.
892
918
  */
893
919
  applyAuthToRequest(request, authNames) {
@@ -896,7 +922,10 @@ class ApiClient {
896
922
  switch (auth.type) {
897
923
  case 'basic':
898
924
  if (auth.username || auth.password) {
899
- request.auth(auth.username || '', auth.password || '');
925
+ request.auth = {
926
+ username: auth.username || '',
927
+ password: auth.password || ''
928
+ };
900
929
  }
901
930
  break;
902
931
  case 'apiKey':
@@ -908,15 +937,15 @@ class ApiClient {
908
937
  data[auth.name] = auth.apiKey;
909
938
  }
910
939
  if (auth['in'] === 'header') {
911
- request.set(data);
940
+ request.headers = this.addHeaders(request.headers, data);
912
941
  } else {
913
- request.query(data);
942
+ request.params = this.serialize(data);
914
943
  }
915
944
  }
916
945
  break;
917
946
  case 'oauth2':
918
947
  if (auth.accessToken) {
919
- request.set({'Authorization': `Bearer ${auth.accessToken}`});
948
+ request.headers = this.addHeaders(request.headers, {'Authorization': `Bearer ${auth.accessToken}`});
920
949
  }
921
950
  break;
922
951
  default:
@@ -945,86 +974,71 @@ class ApiClient {
945
974
  sendRequest(this);
946
975
  function sendRequest(that) {
947
976
  var url = that.buildUrl(path, pathParams);
948
- var request = superagent(httpMethod, url);
949
-
950
- if (that.proxy && request.proxy) {
951
- request.proxy(that.proxy);
952
- }
977
+ var request = {
978
+ method: httpMethod,
979
+ url: url,
980
+ proxy: that.proxy,
981
+ timeout: that.timeout,
982
+ params: that.serialize(queryParams)
983
+ };
953
984
 
954
985
  // apply authentications
955
986
  that.applyAuthToRequest(request, authNames);
956
987
 
957
- // set query parameters
958
- request.query(that.normalizeParams(queryParams));
959
-
960
988
  // set header parameters
961
- request.set(that.defaultHeaders).set(that.normalizeParams(headerParams));
962
- //request.set({ 'purecloud-sdk': '137.0.1' });
963
-
964
- // set request timeout
965
- request.timeout(that.timeout);
989
+ const defaultHeaders = that.defaultHeaders;
990
+ const normalizedHeaderParams = that.normalizeParams(headerParams);
991
+ request.headers = that.addHeaders(request.headers, defaultHeaders, normalizedHeaderParams);
966
992
 
967
993
  var contentType = that.jsonPreferredMime(contentTypes);
968
994
  if (contentType) {
969
- request.type(contentType);
970
- } else if (!request.header['Content-Type']) {
971
- request.type('application/json');
995
+ request.headers['Content-Type'] = contentType;
996
+ } else if (!request.headers['Content-Type']) {
997
+ request.headers['Content-Type'] = 'application/json';
972
998
  }
973
999
 
974
1000
  if (contentType === 'application/x-www-form-urlencoded') {
975
- request.send(that.normalizeParams(formParams));
1001
+ request.data = that.normalizeParams(formParams);
976
1002
  } else if (contentType == 'multipart/form-data') {
977
1003
  var _formParams = that.normalizeParams(formParams);
978
1004
  for (var key in _formParams) {
979
1005
  if (_formParams.hasOwnProperty(key)) {
980
- if (that.isFileParam(_formParams[key])) {
981
- // file field
982
- request.attach(key, _formParams[key]);
983
- } else {
984
- request.field(key, _formParams[key]);
985
- }
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;
986
1010
  }
987
1011
  }
988
1012
  } else if (bodyParam) {
989
- request.send(bodyParam);
1013
+ request.data = bodyParam;
990
1014
  }
991
1015
 
992
1016
  var accept = that.jsonPreferredMime(accepts);
993
1017
  if (accept) {
994
- request.accept(accept);
1018
+ request.headers['Accept'] = accept;
995
1019
  }
996
- request.end((error, response) => {
997
- if (error) {
998
- if (!response) {
999
- reject({
1000
- status: 0,
1001
- statusText: 'error',
1002
- headers: [],
1003
- body: {},
1004
- text: 'error',
1005
- error: error
1006
- });
1007
- return;
1008
- }
1009
- }
1010
-
1011
- // Build response object
1012
- var data = (that.returnExtended === true || error) ? {
1013
- status: response.status,
1014
- statusText: response.statusText,
1015
- headers: response.headers,
1016
- body: response.body,
1017
- text: response.text,
1018
- error: error
1019
- } : response.body ? response.body : response.text;
1020
-
1021
- // Debug logging
1022
- that.config.logger.log('trace', response.statusCode, httpMethod, url, request.header, response.headers, bodyParam, undefined);
1023
- that.config.logger.log('debug', response.statusCode, httpMethod, url, request.header, undefined, bodyParam, undefined);
1024
-
1025
- // Resolve promise
1026
- if (error) {
1027
- 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 !== "") {
1028
1042
  that._handleExpiredAccessToken()
1029
1043
  .then(() => {
1030
1044
  sendRequest(that);
@@ -1032,24 +1046,29 @@ class ApiClient {
1032
1046
  .catch((err) => {
1033
1047
  reject(err);
1034
1048
  });
1035
- } else {
1049
+ } else if (error.response) {
1036
1050
  // Log error
1037
1051
  that.config.logger.log(
1038
1052
  'error',
1039
- response.statusCode,
1053
+ error.response.status,
1040
1054
  httpMethod,
1041
1055
  url,
1042
- request.header,
1043
- response.headers,
1056
+ request.headers,
1057
+ error.response.headers,
1044
1058
  bodyParam,
1045
- response.body
1059
+ error.response.data
1046
1060
  );
1047
- 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;
1048
1069
  }
1049
- } else {
1050
- resolve(data);
1051
- }
1052
- });
1070
+ reject(data);
1071
+ });
1053
1072
  }
1054
1073
  });
1055
1074
  }
@@ -5,7 +5,7 @@ class AlertingApi {
5
5
  /**
6
6
  * Alerting service.
7
7
  * @module purecloud-platform-client-v2/api/AlertingApi
8
- * @version 137.0.1
8
+ * @version 137.1.0
9
9
  */
10
10
 
11
11
  /**
@@ -5,7 +5,7 @@ class AnalyticsApi {
5
5
  /**
6
6
  * Analytics service.
7
7
  * @module purecloud-platform-client-v2/api/AnalyticsApi
8
- * @version 137.0.1
8
+ * @version 137.1.0
9
9
  */
10
10
 
11
11
  /**
@@ -5,7 +5,7 @@ class ArchitectApi {
5
5
  /**
6
6
  * Architect service.
7
7
  * @module purecloud-platform-client-v2/api/ArchitectApi
8
- * @version 137.0.1
8
+ * @version 137.1.0
9
9
  */
10
10
 
11
11
  /**
@@ -5,7 +5,7 @@ class AuditApi {
5
5
  /**
6
6
  * Audit service.
7
7
  * @module purecloud-platform-client-v2/api/AuditApi
8
- * @version 137.0.1
8
+ * @version 137.1.0
9
9
  */
10
10
 
11
11
  /**
@@ -5,7 +5,7 @@ class AuthorizationApi {
5
5
  /**
6
6
  * Authorization service.
7
7
  * @module purecloud-platform-client-v2/api/AuthorizationApi
8
- * @version 137.0.1
8
+ * @version 137.1.0
9
9
  */
10
10
 
11
11
  /**
@@ -5,7 +5,7 @@ class BillingApi {
5
5
  /**
6
6
  * Billing service.
7
7
  * @module purecloud-platform-client-v2/api/BillingApi
8
- * @version 137.0.1
8
+ * @version 137.1.0
9
9
  */
10
10
 
11
11
  /**