purecloud-platform-client-v2 137.0.1 → 138.0.1

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 +289 -262
  3. package/dist/web-amd/purecloud-platform-client-v2.js +289 -262
  4. package/dist/web-amd/purecloud-platform-client-v2.min.js +1 -1
  5. package/dist/web-cjs/bundle.js +289 -262
  6. package/dist/web-cjs/purecloud-platform-client-v2.js +2080 -4490
  7. package/dist/web-cjs/purecloud-platform-client-v2.min.js +1 -1
  8. package/index.d.ts +419 -394
  9. package/package.json +2 -2
  10. package/src/purecloud-platform-client-v2/ApiClient.js +198 -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 +4 -4
  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 +7 -7
  73. package/src/purecloud-platform-client-v2/index.js +1 -1
  74. package/src/purecloud-platform-client-v2/logger.js +17 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "purecloud-platform-client-v2",
3
- "version": "137.0.1",
3
+ "version": "138.0.1",
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 138.0.1
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) && obj[p] !== undefined) {
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.
@@ -867,6 +893,9 @@ class ApiClient {
867
893
  */
868
894
  buildCollectionParam(param, collectionFormat) {
869
895
  if (!param) return;
896
+ if (!Array.isArray(param)) {
897
+ param = [param]
898
+ }
870
899
 
871
900
  switch (collectionFormat) {
872
901
  case 'csv':
@@ -878,7 +907,7 @@ class ApiClient {
878
907
  case 'pipes':
879
908
  return param.map(this.paramToString).join('|');
880
909
  case 'multi':
881
- // return the array directly as SuperAgent will handle it as expected
910
+ // return the array directly as axios will handle it as expected
882
911
  return param.map(this.paramToString);
883
912
  default:
884
913
  throw new Error(`Unknown collection format: ${collectionFormat}`);
@@ -887,7 +916,7 @@ class ApiClient {
887
916
 
888
917
  /**
889
918
  * Applies authentication headers to the request.
890
- * @param {Object} request The request object created by a <code>superagent()</code> call.
919
+ * @param {Object} request The axios request config object.
891
920
  * @param {Array.<String>} authNames An array of authentication method names.
892
921
  */
893
922
  applyAuthToRequest(request, authNames) {
@@ -896,7 +925,10 @@ class ApiClient {
896
925
  switch (auth.type) {
897
926
  case 'basic':
898
927
  if (auth.username || auth.password) {
899
- request.auth(auth.username || '', auth.password || '');
928
+ request.auth = {
929
+ username: auth.username || '',
930
+ password: auth.password || ''
931
+ };
900
932
  }
901
933
  break;
902
934
  case 'apiKey':
@@ -908,15 +940,15 @@ class ApiClient {
908
940
  data[auth.name] = auth.apiKey;
909
941
  }
910
942
  if (auth['in'] === 'header') {
911
- request.set(data);
943
+ request.headers = this.addHeaders(request.headers, data);
912
944
  } else {
913
- request.query(data);
945
+ request.params = this.serialize(data);
914
946
  }
915
947
  }
916
948
  break;
917
949
  case 'oauth2':
918
950
  if (auth.accessToken) {
919
- request.set({'Authorization': `Bearer ${auth.accessToken}`});
951
+ request.headers = this.addHeaders(request.headers, {'Authorization': `Bearer ${auth.accessToken}`});
920
952
  }
921
953
  break;
922
954
  default:
@@ -945,86 +977,71 @@ class ApiClient {
945
977
  sendRequest(this);
946
978
  function sendRequest(that) {
947
979
  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
- }
980
+ var request = {
981
+ method: httpMethod,
982
+ url: url,
983
+ proxy: that.proxy,
984
+ timeout: that.timeout,
985
+ params: that.serialize(queryParams)
986
+ };
953
987
 
954
988
  // apply authentications
955
989
  that.applyAuthToRequest(request, authNames);
956
990
 
957
- // set query parameters
958
- request.query(that.normalizeParams(queryParams));
959
-
960
991
  // 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);
992
+ const defaultHeaders = that.defaultHeaders;
993
+ const normalizedHeaderParams = that.normalizeParams(headerParams);
994
+ request.headers = that.addHeaders(request.headers, defaultHeaders, normalizedHeaderParams);
966
995
 
967
996
  var contentType = that.jsonPreferredMime(contentTypes);
968
997
  if (contentType) {
969
- request.type(contentType);
970
- } else if (!request.header['Content-Type']) {
971
- request.type('application/json');
998
+ request.headers['Content-Type'] = contentType;
999
+ } else if (!request.headers['Content-Type']) {
1000
+ request.headers['Content-Type'] = 'application/json';
972
1001
  }
973
1002
 
974
1003
  if (contentType === 'application/x-www-form-urlencoded') {
975
- request.send(that.normalizeParams(formParams));
1004
+ request.data = that.normalizeParams(formParams);
976
1005
  } else if (contentType == 'multipart/form-data') {
977
1006
  var _formParams = that.normalizeParams(formParams);
978
1007
  for (var key in _formParams) {
979
1008
  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
- }
1009
+ // Looks like axios handles files and forms the same way
1010
+ var formData = new FormData();
1011
+ formData.set(key, _formParams[key]);
1012
+ request.data = formData;
986
1013
  }
987
1014
  }
988
1015
  } else if (bodyParam) {
989
- request.send(bodyParam);
1016
+ request.data = bodyParam;
990
1017
  }
991
1018
 
992
1019
  var accept = that.jsonPreferredMime(accepts);
993
1020
  if (accept) {
994
- request.accept(accept);
1021
+ request.headers['Accept'] = accept;
995
1022
  }
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 !== "") {
1023
+ axios.request(request)
1024
+ .then((response) => {
1025
+ // Build response object
1026
+ var data = (that.returnExtended === true) ? {
1027
+ status: response.status,
1028
+ statusText: response.statusText,
1029
+ headers: response.headers,
1030
+ body: response.data,
1031
+ text: response.text,
1032
+ error: null
1033
+ } : response.data ? response.data : response.text;
1034
+
1035
+ // Debug logging
1036
+ that.config.logger.log('trace', response.status, httpMethod, url, request.headers, response.headers, bodyParam, undefined);
1037
+ that.config.logger.log('debug', response.status, httpMethod, url, request.headers, undefined, bodyParam, undefined);
1038
+
1039
+ // Resolve promise
1040
+ resolve(data);
1041
+ })
1042
+ .catch((error) => {
1043
+ var data = error
1044
+ if (error.response && error.response.status == 401 && that.config.refresh_access_token && that.authData.refreshToken !== "") {
1028
1045
  that._handleExpiredAccessToken()
1029
1046
  .then(() => {
1030
1047
  sendRequest(that);
@@ -1032,24 +1049,29 @@ class ApiClient {
1032
1049
  .catch((err) => {
1033
1050
  reject(err);
1034
1051
  });
1035
- } else {
1052
+ } else if (error.response) {
1036
1053
  // Log error
1037
1054
  that.config.logger.log(
1038
1055
  'error',
1039
- response.statusCode,
1056
+ error.response.status,
1040
1057
  httpMethod,
1041
1058
  url,
1042
- request.header,
1043
- response.headers,
1059
+ request.headers,
1060
+ error.response.headers,
1044
1061
  bodyParam,
1045
- response.body
1062
+ error.response.data
1046
1063
  );
1047
- reject(data);
1064
+ data = (that.returnExtended === true) ? {
1065
+ status: error.response.status,
1066
+ statusText: error.response.statusText,
1067
+ headers: error.response.headers,
1068
+ body: error.response.data,
1069
+ text: error.response.text,
1070
+ error: error
1071
+ } : error.response.data ? error.response.data : error.response.text;
1048
1072
  }
1049
- } else {
1050
- resolve(data);
1051
- }
1052
- });
1073
+ reject(data);
1074
+ });
1053
1075
  }
1054
1076
  });
1055
1077
  }
@@ -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 138.0.1
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 138.0.1
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 138.0.1
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 138.0.1
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 138.0.1
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 138.0.1
9
9
  */
10
10
 
11
11
  /**