@nutanix-scratch/objects-js-client 4.0.1 → 4.0.2
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/README.md +31 -18
- package/dist/Ntnx-Objects-js-client-prod.js +1 -1
- package/dist/Ntnx-Objects-js-client.js +283 -277
- package/dist/es/ApiClient.d.ts +35 -7
- package/dist/es/ApiClient.js +862 -684
- package/dist/es/Paginable.d.ts +1 -1
- package/dist/es/Paginable.js +144 -183
- package/dist/es/apis/objectstores-endpoints.d.ts +5 -69
- package/dist/es/apis/objectstores-endpoints.js +406 -479
- package/dist/es/apis/stats-endpoints.d.ts +1 -24
- package/dist/es/apis/stats-endpoints.js +73 -105
- package/dist/es/index.js +120 -120
- package/dist/es/models/common/v1/config/FQDN.d.ts +2 -7
- package/dist/es/models/common/v1/config/FQDN.js +141 -180
- package/dist/es/models/common/v1/config/Flag.d.ts +2 -8
- package/dist/es/models/common/v1/config/Flag.js +170 -211
- package/dist/es/models/common/v1/config/IPAddress.d.ts +2 -20
- package/dist/es/models/common/v1/config/IPAddress.js +170 -217
- package/dist/es/models/common/v1/config/IPv4Address.d.ts +2 -8
- package/dist/es/models/common/v1/config/IPv4Address.js +174 -215
- package/dist/es/models/common/v1/config/IPv6Address.d.ts +2 -8
- package/dist/es/models/common/v1/config/IPv6Address.js +174 -215
- package/dist/es/models/common/v1/config/KVPair.d.ts +2 -8
- package/dist/es/models/common/v1/config/KVPair.js +225 -270
- package/dist/es/models/common/v1/config/MapOfStringWrapper.d.ts +2 -7
- package/dist/es/models/common/v1/config/MapOfStringWrapper.js +139 -178
- package/dist/es/models/common/v1/config/Message.d.ts +2 -10
- package/dist/es/models/common/v1/config/Message.js +213 -258
- package/dist/es/models/common/v1/config/MessageSeverity.js +7 -9
- package/dist/es/models/common/v1/config/Metadata.d.ts +2 -11
- package/dist/es/models/common/v1/config/Metadata.js +261 -308
- package/dist/es/models/common/v1/config/TenantAwareModel.d.ts +5 -10
- package/dist/es/models/common/v1/config/TenantAwareModel.js +138 -178
- package/dist/es/models/common/v1/response/ApiLink.d.ts +2 -8
- package/dist/es/models/common/v1/response/ApiLink.js +165 -206
- package/dist/es/models/common/v1/response/ApiResponseMetadata.d.ts +2 -40
- package/dist/es/models/common/v1/response/ApiResponseMetadata.js +281 -344
- package/dist/es/models/common/v1/response/ExternalizableAbstractModel.d.ts +1 -15
- package/dist/es/models/common/v1/response/ExternalizableAbstractModel.js +155 -203
- package/dist/es/models/common/v1/stats/DownSamplingOperator.js +7 -9
- package/dist/es/models/common/v1/stats/TimeIntValuePair.d.ts +2 -8
- package/dist/es/models/common/v1/stats/TimeIntValuePair.js +165 -206
- package/dist/es/models/objects/v4/config/Certificate.d.ts +1 -58
- package/dist/es/models/objects/v4/config/Certificate.js +319 -381
- package/dist/es/models/objects/v4/config/CertificateProjection.d.ts +1 -1
- package/dist/es/models/objects/v4/config/CertificateProjection.js +73 -102
- package/dist/es/models/objects/v4/config/CreateCertificateApiResponse.d.ts +2 -45
- package/dist/es/models/objects/v4/config/CreateCertificateApiResponse.js +185 -240
- package/dist/es/models/objects/v4/config/CreateObjectstoreApiResponse.d.ts +2 -43
- package/dist/es/models/objects/v4/config/CreateObjectstoreApiResponse.js +185 -240
- package/dist/es/models/objects/v4/config/DeleteObjectstoreApiResponse.d.ts +2 -43
- package/dist/es/models/objects/v4/config/DeleteObjectstoreApiResponse.js +185 -240
- package/dist/es/models/objects/v4/config/GetCaApiResponse.d.ts +2 -43
- package/dist/es/models/objects/v4/config/GetCaApiResponse.js +185 -240
- package/dist/es/models/objects/v4/config/GetCertificateApiResponse.d.ts +2 -43
- package/dist/es/models/objects/v4/config/GetCertificateApiResponse.js +185 -240
- package/dist/es/models/objects/v4/config/GetObjectstoreApiResponse.d.ts +2 -45
- package/dist/es/models/objects/v4/config/GetObjectstoreApiResponse.js +185 -240
- package/dist/es/models/objects/v4/config/ListCertificatesApiResponse.d.ts +2 -43
- package/dist/es/models/objects/v4/config/ListCertificatesApiResponse.js +211 -266
- package/dist/es/models/objects/v4/config/ListObjectstoresApiResponse.d.ts +2 -43
- package/dist/es/models/objects/v4/config/ListObjectstoresApiResponse.js +211 -266
- package/dist/es/models/objects/v4/config/ObjectStore.d.ts +1 -96
- package/dist/es/models/objects/v4/config/ObjectStore.js +628 -711
- package/dist/es/models/objects/v4/config/ObjectStoreProjection.d.ts +1 -152
- package/dist/es/models/objects/v4/config/ObjectStoreProjection.js +221 -238
- package/dist/es/models/objects/v4/config/State.js +7 -9
- package/dist/es/models/objects/v4/config/UpdateObjectstoreApiResponse.d.ts +2 -43
- package/dist/es/models/objects/v4/config/UpdateObjectstoreApiResponse.js +185 -240
- package/dist/es/models/objects/v4/error/AppMessage.d.ts +5 -15
- package/dist/es/models/objects/v4/error/AppMessage.js +264 -313
- package/dist/es/models/objects/v4/error/ErrorResponse.d.ts +2 -7
- package/dist/es/models/objects/v4/error/ErrorResponse.js +174 -217
- package/dist/es/models/objects/v4/error/SchemaValidationError.d.ts +2 -18
- package/dist/es/models/objects/v4/error/SchemaValidationError.js +248 -299
- package/dist/es/models/objects/v4/error/SchemaValidationErrorMessage.d.ts +2 -9
- package/dist/es/models/objects/v4/error/SchemaValidationErrorMessage.js +190 -233
- package/dist/es/models/objects/v4/stats/GetObjectstoreStatsApiResponse.d.ts +2 -43
- package/dist/es/models/objects/v4/stats/GetObjectstoreStatsApiResponse.js +185 -240
- package/dist/es/models/objects/v4/stats/ObjectstoreStats.d.ts +1 -169
- package/dist/es/models/objects/v4/stats/ObjectstoreStats.js +957 -1129
- package/dist/es/models/objects/v4/stats/TimeFloatValuePair.d.ts +2 -8
- package/dist/es/models/objects/v4/stats/TimeFloatValuePair.js +165 -206
- package/dist/es/models/prism/v4/config/TaskReference.d.ts +5 -10
- package/dist/es/models/prism/v4/config/TaskReference.js +143 -182
- package/dist/es/models/validation/ValidationError.js +26 -42
- package/dist/es/models/validation/ValidationScopes.js +3 -3
- package/dist/es/utils/ValidationUtils.js +39 -69
- package/dist/lib/ApiClient.d.ts +35 -7
- package/dist/lib/ApiClient.js +862 -684
- package/dist/lib/Paginable.d.ts +1 -1
- package/dist/lib/Paginable.js +144 -183
- package/dist/lib/apis/objectstores-endpoints.d.ts +5 -69
- package/dist/lib/apis/objectstores-endpoints.js +406 -479
- package/dist/lib/apis/stats-endpoints.d.ts +1 -24
- package/dist/lib/apis/stats-endpoints.js +73 -105
- package/dist/lib/index.js +120 -120
- package/dist/lib/models/common/v1/config/FQDN.d.ts +2 -7
- package/dist/lib/models/common/v1/config/FQDN.js +141 -180
- package/dist/lib/models/common/v1/config/Flag.d.ts +2 -8
- package/dist/lib/models/common/v1/config/Flag.js +170 -211
- package/dist/lib/models/common/v1/config/IPAddress.d.ts +2 -20
- package/dist/lib/models/common/v1/config/IPAddress.js +170 -217
- package/dist/lib/models/common/v1/config/IPv4Address.d.ts +2 -8
- package/dist/lib/models/common/v1/config/IPv4Address.js +174 -215
- package/dist/lib/models/common/v1/config/IPv6Address.d.ts +2 -8
- package/dist/lib/models/common/v1/config/IPv6Address.js +174 -215
- package/dist/lib/models/common/v1/config/KVPair.d.ts +2 -8
- package/dist/lib/models/common/v1/config/KVPair.js +225 -270
- package/dist/lib/models/common/v1/config/MapOfStringWrapper.d.ts +2 -7
- package/dist/lib/models/common/v1/config/MapOfStringWrapper.js +139 -178
- package/dist/lib/models/common/v1/config/Message.d.ts +2 -10
- package/dist/lib/models/common/v1/config/Message.js +213 -258
- package/dist/lib/models/common/v1/config/MessageSeverity.js +7 -9
- package/dist/lib/models/common/v1/config/Metadata.d.ts +2 -11
- package/dist/lib/models/common/v1/config/Metadata.js +261 -308
- package/dist/lib/models/common/v1/config/TenantAwareModel.d.ts +5 -10
- package/dist/lib/models/common/v1/config/TenantAwareModel.js +138 -178
- package/dist/lib/models/common/v1/response/ApiLink.d.ts +2 -8
- package/dist/lib/models/common/v1/response/ApiLink.js +165 -206
- package/dist/lib/models/common/v1/response/ApiResponseMetadata.d.ts +2 -40
- package/dist/lib/models/common/v1/response/ApiResponseMetadata.js +281 -344
- package/dist/lib/models/common/v1/response/ExternalizableAbstractModel.d.ts +1 -15
- package/dist/lib/models/common/v1/response/ExternalizableAbstractModel.js +155 -203
- package/dist/lib/models/common/v1/stats/DownSamplingOperator.js +7 -9
- package/dist/lib/models/common/v1/stats/TimeIntValuePair.d.ts +2 -8
- package/dist/lib/models/common/v1/stats/TimeIntValuePair.js +165 -206
- package/dist/lib/models/objects/v4/config/Certificate.d.ts +1 -58
- package/dist/lib/models/objects/v4/config/Certificate.js +319 -381
- package/dist/lib/models/objects/v4/config/CertificateProjection.d.ts +1 -1
- package/dist/lib/models/objects/v4/config/CertificateProjection.js +73 -102
- package/dist/lib/models/objects/v4/config/CreateCertificateApiResponse.d.ts +2 -45
- package/dist/lib/models/objects/v4/config/CreateCertificateApiResponse.js +185 -240
- package/dist/lib/models/objects/v4/config/CreateObjectstoreApiResponse.d.ts +2 -43
- package/dist/lib/models/objects/v4/config/CreateObjectstoreApiResponse.js +185 -240
- package/dist/lib/models/objects/v4/config/DeleteObjectstoreApiResponse.d.ts +2 -43
- package/dist/lib/models/objects/v4/config/DeleteObjectstoreApiResponse.js +185 -240
- package/dist/lib/models/objects/v4/config/GetCaApiResponse.d.ts +2 -43
- package/dist/lib/models/objects/v4/config/GetCaApiResponse.js +185 -240
- package/dist/lib/models/objects/v4/config/GetCertificateApiResponse.d.ts +2 -43
- package/dist/lib/models/objects/v4/config/GetCertificateApiResponse.js +185 -240
- package/dist/lib/models/objects/v4/config/GetObjectstoreApiResponse.d.ts +2 -45
- package/dist/lib/models/objects/v4/config/GetObjectstoreApiResponse.js +185 -240
- package/dist/lib/models/objects/v4/config/ListCertificatesApiResponse.d.ts +2 -43
- package/dist/lib/models/objects/v4/config/ListCertificatesApiResponse.js +211 -266
- package/dist/lib/models/objects/v4/config/ListObjectstoresApiResponse.d.ts +2 -43
- package/dist/lib/models/objects/v4/config/ListObjectstoresApiResponse.js +211 -266
- package/dist/lib/models/objects/v4/config/ObjectStore.d.ts +1 -96
- package/dist/lib/models/objects/v4/config/ObjectStore.js +628 -711
- package/dist/lib/models/objects/v4/config/ObjectStoreProjection.d.ts +1 -152
- package/dist/lib/models/objects/v4/config/ObjectStoreProjection.js +221 -238
- package/dist/lib/models/objects/v4/config/State.js +7 -9
- package/dist/lib/models/objects/v4/config/UpdateObjectstoreApiResponse.d.ts +2 -43
- package/dist/lib/models/objects/v4/config/UpdateObjectstoreApiResponse.js +185 -240
- package/dist/lib/models/objects/v4/error/AppMessage.d.ts +5 -15
- package/dist/lib/models/objects/v4/error/AppMessage.js +264 -313
- package/dist/lib/models/objects/v4/error/ErrorResponse.d.ts +2 -7
- package/dist/lib/models/objects/v4/error/ErrorResponse.js +174 -217
- package/dist/lib/models/objects/v4/error/SchemaValidationError.d.ts +2 -18
- package/dist/lib/models/objects/v4/error/SchemaValidationError.js +248 -299
- package/dist/lib/models/objects/v4/error/SchemaValidationErrorMessage.d.ts +2 -9
- package/dist/lib/models/objects/v4/error/SchemaValidationErrorMessage.js +190 -233
- package/dist/lib/models/objects/v4/stats/GetObjectstoreStatsApiResponse.d.ts +2 -43
- package/dist/lib/models/objects/v4/stats/GetObjectstoreStatsApiResponse.js +185 -240
- package/dist/lib/models/objects/v4/stats/ObjectstoreStats.d.ts +1 -169
- package/dist/lib/models/objects/v4/stats/ObjectstoreStats.js +957 -1129
- package/dist/lib/models/objects/v4/stats/TimeFloatValuePair.d.ts +2 -8
- package/dist/lib/models/objects/v4/stats/TimeFloatValuePair.js +165 -206
- package/dist/lib/models/prism/v4/config/TaskReference.d.ts +5 -10
- package/dist/lib/models/prism/v4/config/TaskReference.js +143 -182
- package/dist/lib/models/validation/ValidationError.js +26 -42
- package/dist/lib/models/validation/ValidationScopes.js +3 -3
- package/dist/lib/utils/ValidationUtils.js +39 -69
- package/package.json +2 -2
package/dist/es/ApiClient.js
CHANGED
|
@@ -9,28 +9,13 @@ var _Paginable = _interopRequireDefault(require("./Paginable"));
|
|
|
9
9
|
var _uuid = require("uuid");
|
|
10
10
|
var _superagentRetryDelay = _interopRequireDefault(require("superagent-retry-delay"));
|
|
11
11
|
var _https = _interopRequireDefault(require("https"));
|
|
12
|
-
var
|
|
12
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
13
13
|
var _path = _interopRequireDefault(require("path"));
|
|
14
14
|
var _buffer = require("buffer");
|
|
15
15
|
var _ApiResponseMetadata = _interopRequireDefault(require("./models/common/v1/response/ApiResponseMetadata"));
|
|
16
16
|
var _Flag = _interopRequireDefault(require("./models/common/v1/config/Flag"));
|
|
17
17
|
var _ApiClient;
|
|
18
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : {
|
|
19
|
-
function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)(>|$)/g, function (e, r, t) { if ("" === t) return e; var p = o[r]; return Array.isArray(p) ? "$" + p.join("$") : "number" == typeof p ? "$" + p : ""; })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != _typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
|
|
20
|
-
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
21
|
-
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
22
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
25
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
26
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
27
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
28
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
29
|
-
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
30
|
-
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
31
|
-
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
32
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
33
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
34
19
|
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
|
35
20
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
|
36
21
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
|
@@ -39,22 +24,22 @@ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a),
|
|
|
39
24
|
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); } /*
|
|
40
25
|
* Nutanix Objects Storage Management APIs
|
|
41
26
|
*
|
|
42
|
-
* OpenAPI spec version: 4.0.
|
|
27
|
+
* OpenAPI spec version: 4.0.2
|
|
43
28
|
*
|
|
44
29
|
* NOTE: This class is auto generated by the Open API Dev Platform.
|
|
45
30
|
*
|
|
46
|
-
* Open API Dev Platform Codegen version:
|
|
31
|
+
* Open API Dev Platform Codegen version: 17.5.0.10128-RELEASE
|
|
47
32
|
*
|
|
48
33
|
* Do not edit the class manually.
|
|
49
34
|
*
|
|
50
35
|
*/
|
|
51
|
-
(0, _superagentRetryDelay
|
|
36
|
+
(0, _superagentRetryDelay.default)(_superagent.default);
|
|
52
37
|
/**
|
|
53
38
|
* Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an
|
|
54
39
|
* application to use this class directly - the *Api and model classes provide the public API for the service. The
|
|
55
40
|
* contents of this file should be regarded as internal but are documented for completeness.
|
|
56
41
|
* @module ApiClient
|
|
57
|
-
* @version 4.0.
|
|
42
|
+
* @version 4.0.2
|
|
58
43
|
*/
|
|
59
44
|
var _protocol = /*#__PURE__*/new WeakMap();
|
|
60
45
|
var _cookie = /*#__PURE__*/new WeakMap();
|
|
@@ -63,15 +48,17 @@ var _verifySslFlag = /*#__PURE__*/new WeakMap();
|
|
|
63
48
|
var _defaultConnectTimeout = /*#__PURE__*/new WeakMap();
|
|
64
49
|
var _defaultReadTimeout = /*#__PURE__*/new WeakMap();
|
|
65
50
|
var _defaultMaxTimeout = /*#__PURE__*/new WeakMap();
|
|
51
|
+
var _host = /*#__PURE__*/new WeakMap();
|
|
52
|
+
var _negotiationCompleted = /*#__PURE__*/new WeakMap();
|
|
53
|
+
var _negotiatedVersion = /*#__PURE__*/new WeakMap();
|
|
66
54
|
var _LOG_LEVEL = /*#__PURE__*/new WeakMap();
|
|
67
55
|
var _ApiClient_brand = /*#__PURE__*/new WeakSet();
|
|
68
|
-
|
|
56
|
+
class ApiClient {
|
|
69
57
|
/**
|
|
70
58
|
* @alias module:ApiClient
|
|
71
59
|
* @class
|
|
72
60
|
*/
|
|
73
|
-
|
|
74
|
-
_classCallCheck(this, ApiClient);
|
|
61
|
+
constructor() {
|
|
75
62
|
/*
|
|
76
63
|
* Checks whether the given content type represents JSON.<br>
|
|
77
64
|
* JSON content type examples:<br>
|
|
@@ -92,6 +79,9 @@ var ApiClient = exports.ApiClient = /*#__PURE__*/function () {
|
|
|
92
79
|
_classPrivateFieldInitSpec(this, _defaultConnectTimeout, void 0);
|
|
93
80
|
_classPrivateFieldInitSpec(this, _defaultReadTimeout, void 0);
|
|
94
81
|
_classPrivateFieldInitSpec(this, _defaultMaxTimeout, void 0);
|
|
82
|
+
_classPrivateFieldInitSpec(this, _host, void 0);
|
|
83
|
+
_classPrivateFieldInitSpec(this, _negotiationCompleted, void 0);
|
|
84
|
+
_classPrivateFieldInitSpec(this, _negotiatedVersion, void 0);
|
|
95
85
|
_classPrivateFieldInitSpec(this, _LOG_LEVEL, void 0);
|
|
96
86
|
_classPrivateFieldSet(_LOG_LEVEL, this, Object.freeze({
|
|
97
87
|
DEBUG: {
|
|
@@ -124,7 +114,7 @@ var ApiClient = exports.ApiClient = /*#__PURE__*/function () {
|
|
|
124
114
|
* @type {String}
|
|
125
115
|
* @default localhost
|
|
126
116
|
*/
|
|
127
|
-
this
|
|
117
|
+
_classPrivateFieldSet(_host, this, typeof self === 'undefined' ? 'localhost' : self.location.hostname);
|
|
128
118
|
|
|
129
119
|
/**
|
|
130
120
|
* The port of the base URL.
|
|
@@ -207,14 +197,28 @@ var ApiClient = exports.ApiClient = /*#__PURE__*/function () {
|
|
|
207
197
|
* @default 3000
|
|
208
198
|
*/
|
|
209
199
|
this.retryInterval = 3000;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* A boolean value that indicates whether cross-site Access-Control requests should be made using auth credentials.
|
|
203
|
+
* @type {Boolean}
|
|
204
|
+
* @default false
|
|
205
|
+
*/
|
|
206
|
+
this.withCredentials = false;
|
|
210
207
|
if (typeof self === 'undefined') {
|
|
211
|
-
this.agent = new _superagent
|
|
208
|
+
this.agent = new _superagent.default.agent();
|
|
212
209
|
}
|
|
213
210
|
|
|
214
211
|
/**
|
|
215
212
|
* Allow user to override superagent agent
|
|
216
213
|
*/
|
|
217
214
|
this.requestAgent = null;
|
|
215
|
+
_classPrivateFieldSet(_negotiatedVersion, this, null);
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Allow SDK to fetch version info and negotiate version
|
|
219
|
+
*/
|
|
220
|
+
this.allowVersionNegotiation = true;
|
|
221
|
+
_classPrivateFieldSet(_negotiationCompleted, this, false);
|
|
218
222
|
|
|
219
223
|
/**
|
|
220
224
|
* Allow SDK to print debug logs
|
|
@@ -249,643 +253,683 @@ var ApiClient = exports.ApiClient = /*#__PURE__*/function () {
|
|
|
249
253
|
* Enable/Disable SSL Verification
|
|
250
254
|
* @param verifySsl (boolean)
|
|
251
255
|
*/
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
256
|
+
set verifySsl(verifySsl) {
|
|
257
|
+
this.requestAgent = verifySsl ? null : new _https.default.Agent({
|
|
258
|
+
rejectUnauthorized: verifySsl
|
|
259
|
+
});
|
|
260
|
+
_classPrivateFieldSet(_verifySslFlag, this, verifySsl);
|
|
261
|
+
}
|
|
262
|
+
get verifySsl() {
|
|
263
|
+
return _classPrivateFieldGet(_verifySslFlag, this);
|
|
264
|
+
}
|
|
257
265
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
/**
|
|
267
|
+
* Set the hostname for base URL
|
|
268
|
+
* @param {String} hostname the hostname
|
|
269
|
+
*/
|
|
270
|
+
set host(hostname) {
|
|
271
|
+
_classPrivateFieldSet(_host, this, hostname);
|
|
272
|
+
// Reset negotiation flags when host changes
|
|
273
|
+
_classPrivateFieldSet(_negotiationCompleted, this, false);
|
|
274
|
+
_classPrivateFieldSet(_negotiatedVersion, this, null);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Get the hostname for base URL
|
|
279
|
+
* @returns {String} the hostname
|
|
280
|
+
*/
|
|
281
|
+
get host() {
|
|
282
|
+
return _classPrivateFieldGet(_host, this);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Configure log file to write activity logs
|
|
287
|
+
* @param logfile The destination file (write stream / string)
|
|
288
|
+
*/
|
|
289
|
+
set loggerFile(logfile) {
|
|
290
|
+
if (logfile !== null && typeof logfile !== 'undefined') {
|
|
291
|
+
if (typeof logfile === 'string' || logfile instanceof String) {
|
|
292
|
+
logfile = _fs.default.createWriteStream(logfile, {
|
|
293
|
+
flags: 'a'
|
|
268
294
|
});
|
|
269
295
|
}
|
|
270
|
-
_classPrivateFieldSet(
|
|
296
|
+
_classPrivateFieldSet(_logger, this, new console.Console({
|
|
297
|
+
stdout: logfile,
|
|
298
|
+
stderr: logfile
|
|
299
|
+
}));
|
|
271
300
|
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
stdout: logfile,
|
|
283
|
-
stderr: logfile
|
|
284
|
-
}));
|
|
285
|
-
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Adds key value pair to default headers map, (to be added to every API call request)
|
|
305
|
+
* @param {String} key The key
|
|
306
|
+
* @param {String} value The corresponding value
|
|
307
|
+
*/
|
|
308
|
+
addDefaultHeader(key, value) {
|
|
309
|
+
if (key === "Authorization") {
|
|
310
|
+
_classPrivateFieldSet(_cookie, this, null);
|
|
286
311
|
}
|
|
312
|
+
this.defaultHeaders[key] = value;
|
|
313
|
+
}
|
|
287
314
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
315
|
+
/*
|
|
316
|
+
* Returns a string representation for an actual parameter.
|
|
317
|
+
* @param param The actual parameter.
|
|
318
|
+
* @returns {String} The string representation of <code>param</code>.
|
|
319
|
+
*/
|
|
320
|
+
paramToString(param) {
|
|
321
|
+
if (param == undefined || param == null) {
|
|
322
|
+
return '';
|
|
323
|
+
}
|
|
324
|
+
if (param instanceof Date) {
|
|
325
|
+
return param.toJSON();
|
|
326
|
+
}
|
|
327
|
+
return param.toString();
|
|
328
|
+
}
|
|
329
|
+
buildUrl(path, pathParams) {
|
|
330
|
+
if (!path.match(/^\//)) {
|
|
331
|
+
path = '/' + path;
|
|
332
|
+
}
|
|
333
|
+
if (typeof _classPrivateFieldGet(_negotiatedVersion, this) !== 'undefined' && _classPrivateFieldGet(_negotiatedVersion, this) !== null && _classPrivateFieldGet(_negotiatedVersion, this).match(/v\d+\.\d+(\.[a|b]\d+)?/) !== null && _classPrivateFieldGet(_negotiatedVersion, this) !== "v4.0") {
|
|
334
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Changing uri", path, "to negotiated version", _classPrivateFieldGet(_negotiatedVersion, this));
|
|
335
|
+
var uriRegExp = new RegExp("(?<=/[-\\w]+/)v\\d+\\.\\d+(\\.[a|b]\\d+)?(?=/.*)", "i");
|
|
336
|
+
path = path.replace(uriRegExp, _classPrivateFieldGet(_negotiatedVersion, this));
|
|
300
337
|
}
|
|
301
338
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
value: function paramToString(param) {
|
|
310
|
-
if (param == undefined || param == null) {
|
|
311
|
-
return '';
|
|
312
|
-
}
|
|
313
|
-
if (param instanceof Date) {
|
|
314
|
-
return param.toJSON();
|
|
315
|
-
}
|
|
316
|
-
return param.toString();
|
|
339
|
+
// The protocol of the base URL, including the colon (:).
|
|
340
|
+
_classPrivateFieldSet(_protocol, this, typeof self === 'undefined' ? this.scheme + ':' : self.location.protocol);
|
|
341
|
+
let basePath = ''; //default
|
|
342
|
+
if (_classPrivateFieldGet(_protocol, this) !== '' && this.host !== '' && this.port !== '') {
|
|
343
|
+
basePath = _classPrivateFieldGet(_protocol, this) + '\/\/' + this.host + ':' + this.port;
|
|
344
|
+
} else if (typeof self !== "undefined") {
|
|
345
|
+
basePath = self.origin;
|
|
317
346
|
}
|
|
318
|
-
|
|
319
|
-
key
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
347
|
+
var url = basePath + path;
|
|
348
|
+
url = url.replace(/\{([\w-]+)\}/g, (fullMatch, key) => {
|
|
349
|
+
var value;
|
|
350
|
+
if (pathParams.hasOwnProperty(key)) {
|
|
351
|
+
value = this.paramToString(pathParams[key]);
|
|
352
|
+
} else {
|
|
353
|
+
value = fullMatch;
|
|
324
354
|
}
|
|
355
|
+
return encodeURIComponent(value);
|
|
356
|
+
});
|
|
357
|
+
return url;
|
|
358
|
+
}
|
|
359
|
+
/*
|
|
360
|
+
* Builds a string representation of an array-type actual parameter, according to the given collection format.
|
|
361
|
+
* @param {Array} param An array parameter.
|
|
362
|
+
* @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy.
|
|
363
|
+
* @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns
|
|
364
|
+
* <code>param</code> as is if <code>collectionFormat</code> is <code>multi</code>.
|
|
365
|
+
*/
|
|
366
|
+
buildCollectionParam(param, collectionFormat) {
|
|
367
|
+
if (param == null) {
|
|
368
|
+
return null;
|
|
369
|
+
}
|
|
370
|
+
switch (collectionFormat) {
|
|
371
|
+
case 'csv':
|
|
372
|
+
return param.map(this.paramToString).join(',');
|
|
373
|
+
case 'ssv':
|
|
374
|
+
return param.map(this.paramToString).join(' ');
|
|
375
|
+
case 'tsv':
|
|
376
|
+
return param.map(this.paramToString).join('\t');
|
|
377
|
+
case 'pipes':
|
|
378
|
+
return param.map(this.paramToString).join('|');
|
|
379
|
+
case 'multi':
|
|
380
|
+
//return the array directly as SuperAgent will handle it as expected
|
|
381
|
+
return param.map(this.paramToString);
|
|
382
|
+
default:
|
|
383
|
+
throw new Error('Unknown collection format: ' + collectionFormat);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
325
386
|
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
var value;
|
|
337
|
-
if (pathParams.hasOwnProperty(key)) {
|
|
338
|
-
value = _this.paramToString(pathParams[key]);
|
|
339
|
-
} else {
|
|
340
|
-
value = fullMatch;
|
|
341
|
-
}
|
|
342
|
-
return encodeURIComponent(value);
|
|
343
|
-
});
|
|
344
|
-
return url;
|
|
387
|
+
/*
|
|
388
|
+
* Sets API key for authentication
|
|
389
|
+
*
|
|
390
|
+
* @param {String} key The API key for authentication
|
|
391
|
+
*/
|
|
392
|
+
setApiKey(key) {
|
|
393
|
+
if (key == undefined || typeof key === 'string' || key instanceof String) {
|
|
394
|
+
this.authentications['apiKeyAuthScheme']['apiKey'] = key;
|
|
395
|
+
} else {
|
|
396
|
+
this.authentications['apiKeyAuthScheme']['apiKey'] = undefined;
|
|
345
397
|
}
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
if (
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
case 'pipes':
|
|
368
|
-
return param.map(this.paramToString).join('|');
|
|
369
|
-
case 'multi':
|
|
370
|
-
//return the array directly as SuperAgent will handle it as expected
|
|
371
|
-
return param.map(this.paramToString);
|
|
372
|
-
default:
|
|
373
|
-
throw new Error('Unknown collection format: ' + collectionFormat);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/*
|
|
401
|
+
* Applies authentication headers to the request.
|
|
402
|
+
* @param {Object} request The request object created by a <code>superagent()</code> call.
|
|
403
|
+
* @param {Array.<String>} authNames An array of authentication method names.
|
|
404
|
+
*/
|
|
405
|
+
|
|
406
|
+
addEtagToReservedMap(response, data) {
|
|
407
|
+
if (response.hasOwnProperty("headers") && response.headers.hasOwnProperty("etag")) {
|
|
408
|
+
let etagRef = response.headers.etag;
|
|
409
|
+
if (data.getData() !== undefined) {
|
|
410
|
+
if (Array.isArray(data.getData()) && data.getData().length > 0) {
|
|
411
|
+
for (var item of data.getData()) {
|
|
412
|
+
if (item.hasOwnProperty("$reserved") && item.get$Reserved() !== undefined) {
|
|
413
|
+
item.get$Reserved()["ETag"] = etagRef;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
} else if (data.getData().hasOwnProperty("$reserved") && data.getData().get$Reserved() !== undefined) {
|
|
417
|
+
data.getData().get$Reserved()["ETag"] = etagRef;
|
|
418
|
+
}
|
|
374
419
|
}
|
|
375
420
|
}
|
|
421
|
+
return data;
|
|
422
|
+
}
|
|
376
423
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
424
|
+
/**
|
|
425
|
+
* Get ETag from an object if exists.
|
|
426
|
+
* The ETag is usually provided in the response of the GET API calls,
|
|
427
|
+
* which can further be used in other HTTP operations.
|
|
428
|
+
*
|
|
429
|
+
* @param object Object from which ETag needs to be retrieved
|
|
430
|
+
* @returns {(String|null)} returns ETag header in the object if it's an API response object, otherwise null
|
|
431
|
+
*/
|
|
432
|
+
static getEtag(object) {
|
|
433
|
+
let etag = null;
|
|
434
|
+
if (object !== undefined) {
|
|
435
|
+
if (object.hasOwnProperty('$reserved') && object.get$Reserved() !== undefined) {
|
|
436
|
+
etag = this.getValueForCaseInsensitiveKeyMatch(object.get$Reserved(), 'ETag');
|
|
437
|
+
}
|
|
438
|
+
if (etag == null && object.hasOwnProperty("data") && object.getData().hasOwnProperty('$reserved') && object.getData().get$Reserved() !== undefined) {
|
|
439
|
+
etag = this.getValueForCaseInsensitiveKeyMatch(object.getData().get$Reserved(), 'ETag');
|
|
389
440
|
}
|
|
390
441
|
}
|
|
442
|
+
return etag;
|
|
443
|
+
}
|
|
444
|
+
static getValueForCaseInsensitiveKeyMatch(object, key) {
|
|
445
|
+
if (object && key) {
|
|
446
|
+
const searchKey = key.toLowerCase();
|
|
447
|
+
const matchedKey = Object.keys(object).find(key => key.toLowerCase() === searchKey);
|
|
448
|
+
return matchedKey ? object[matchedKey] : null;
|
|
449
|
+
}
|
|
450
|
+
return null;
|
|
451
|
+
}
|
|
391
452
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
453
|
+
/**
|
|
454
|
+
* Get SDK's negotiated version.
|
|
455
|
+
* @returns {String} negotiated version.
|
|
456
|
+
*/
|
|
457
|
+
getNegotiatedVersion() {
|
|
458
|
+
return _classPrivateFieldGet(_negotiatedVersion, this);
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Call relevant options api and negotiate version
|
|
462
|
+
* Negotiated version available via getNegotiatedVersion()
|
|
463
|
+
* @param {ApiClient} selfInstance
|
|
464
|
+
* @param {Array.<String>} authNames An array of allowed authentication type names i.e. basicAuthScheme
|
|
465
|
+
* @returns {Promise<ApiClient>} a {@link https://www.promisejs.org/|Promise}
|
|
466
|
+
*/
|
|
467
|
+
negotiateVersion(selfInstance, authNames) {
|
|
468
|
+
return new Promise(resolve => {
|
|
469
|
+
if (this.allowVersionNegotiation === true && _classPrivateFieldGet(_negotiationCompleted, this) === false) {
|
|
470
|
+
this.callApiInternal('/api/objects/unversioned/info', 'OPTIONS', {}, {}, {}, {}, null, authNames, [], ['application/json'], Object).then(({
|
|
471
|
+
data,
|
|
472
|
+
response
|
|
473
|
+
}) => {
|
|
474
|
+
if (response.status === 200 && data.hasOwnProperty("data") && data.data !== null) {
|
|
475
|
+
const serverVersion = data.data;
|
|
476
|
+
const minimumSupportedVersion = "v4.0";
|
|
477
|
+
|
|
478
|
+
// Check if server version is below minimum supported version
|
|
479
|
+
if (_assertClassBrand(_ApiClient_brand, this, _isSmallerMinorVersion).call(this, _assertClassBrand(_ApiClient_brand, this, _getVersionDetails).call(this, serverVersion), _assertClassBrand(_ApiClient_brand, this, _getVersionDetails).call(this, minimumSupportedVersion))) {
|
|
480
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).WARN, null, "Server version", serverVersion, "is below minimum supported version", minimumSupportedVersion, ". Version negotiation will not be performed.");
|
|
481
|
+
_classPrivateFieldSet(_negotiatedVersion, this, null);
|
|
482
|
+
_classPrivateFieldSet(_negotiationCompleted, this, false);
|
|
483
|
+
resolve(selfInstance);
|
|
484
|
+
return;
|
|
417
485
|
}
|
|
418
|
-
|
|
419
|
-
|
|
486
|
+
_classPrivateFieldSet(_negotiatedVersion, this, _assertClassBrand(_ApiClient_brand, this, _performNegotiationBetweenVersions).call(this, "v4.0", serverVersion));
|
|
487
|
+
_classPrivateFieldSet(_negotiationCompleted, this, true);
|
|
488
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Negotiated Version with server :", _classPrivateFieldGet(_negotiatedVersion, this));
|
|
489
|
+
resolve(selfInstance);
|
|
490
|
+
} else {
|
|
491
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Could not fetch supported versions from server");
|
|
492
|
+
_classPrivateFieldSet(_negotiatedVersion, this, null);
|
|
493
|
+
_classPrivateFieldSet(_negotiationCompleted, this, false);
|
|
494
|
+
resolve(selfInstance);
|
|
420
495
|
}
|
|
421
|
-
}
|
|
496
|
+
}).catch(error => {
|
|
497
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Could not fetch supported versions from server");
|
|
498
|
+
_classPrivateFieldSet(_negotiatedVersion, this, null);
|
|
499
|
+
_classPrivateFieldSet(_negotiationCompleted, this, false);
|
|
500
|
+
resolve(selfInstance);
|
|
501
|
+
});
|
|
502
|
+
} else {
|
|
503
|
+
resolve(selfInstance);
|
|
422
504
|
}
|
|
423
|
-
|
|
424
|
-
|
|
505
|
+
});
|
|
506
|
+
}
|
|
425
507
|
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
* which can further be used in other HTTP operations.
|
|
430
|
-
*
|
|
431
|
-
* @param object Object from which ETag needs to be retrieved
|
|
432
|
-
* @returns {(String|null)} returns ETag header in the object if it's an API response object, otherwise null
|
|
433
|
-
*/
|
|
434
|
-
}, {
|
|
435
|
-
key: "callApi",
|
|
436
|
-
value:
|
|
437
|
-
/**
|
|
438
|
-
* Invokes the REST service using the supplied settings and parameters.
|
|
439
|
-
* @param {String} path The base URL to invoke.
|
|
440
|
-
* @param {String} httpMethod The HTTP method to use.
|
|
441
|
-
* @param {Object.<String, String>} pathParams A map of path parameters and their values.
|
|
442
|
-
* @param {Object.<String, Object>} queryParams A map of query parameters and their values.
|
|
443
|
-
* @param {Object.<String, Object>} headerParams A map of header parameters and their values.
|
|
444
|
-
* @param {Object.<String, Object>} formParams A map of form parameters and their values.
|
|
445
|
-
* @param {Object} bodyParam The value to pass as the request body.
|
|
446
|
-
* @param {Array.<String>} authNames An array of authentication type names.
|
|
447
|
-
* @param {Array.<String>} contentTypes An array of request MIME types.
|
|
448
|
-
* @param {Array.<String>} accepts An array of acceptable response MIME types.
|
|
449
|
-
* @param {(String|Array|Object|Function)} returnType The required type to return; can be a string for simple types or the
|
|
450
|
-
* constructor for a complex type.
|
|
451
|
-
* @returns {Promise} A {@link https://www.promisejs.org/|Promise} object.
|
|
452
|
-
*/
|
|
453
|
-
function callApi(path, httpMethod, pathParams, queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, returnType) {
|
|
454
|
-
var _this2 = this;
|
|
455
|
-
var url = this.buildUrl(path, pathParams);
|
|
456
|
-
var request = (0, _superagent["default"])(httpMethod, url);
|
|
508
|
+
// Gets a valid timeout
|
|
509
|
+
// 1. Sets to provided default timeout in case invalid value is passed
|
|
510
|
+
// 2. Sets to default max value of 30 minutes in case a value of more than 30 minutes is passed
|
|
457
511
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
512
|
+
/**
|
|
513
|
+
* Invokes the REST service using the supplied settings and parameters.
|
|
514
|
+
* @param {String} path The base URL to invoke.
|
|
515
|
+
* @param {String} httpMethod The HTTP method to use.
|
|
516
|
+
* @param {Object.<String, String>} pathParams A map of path parameters and their values.
|
|
517
|
+
* @param {Object.<String, Object>} queryParams A map of query parameters and their values.
|
|
518
|
+
* @param {Object.<String, Object>} headerParams A map of header parameters and their values.
|
|
519
|
+
* @param {Object.<String, Object>} formParams A map of form parameters and their values.
|
|
520
|
+
* @param {Object} bodyParam The value to pass as the request body.
|
|
521
|
+
* @param {Array.<String>} authNames An array of authentication type names.
|
|
522
|
+
* @param {Array.<String>} contentTypes An array of request MIME types.
|
|
523
|
+
* @param {Array.<String>} accepts An array of acceptable response MIME types.
|
|
524
|
+
* @param {(String|Array|Object|Function)} returnType The required type to return; can be a string for simple types or the
|
|
525
|
+
* constructor for a complex type.
|
|
526
|
+
* @returns {Promise} A {@link https://www.promisejs.org/|Promise} object.
|
|
527
|
+
*/
|
|
528
|
+
callApi(path, httpMethod, pathParams, queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, returnType) {
|
|
529
|
+
return this.negotiateVersion(this, authNames).then(function (selfInstance) {
|
|
530
|
+
return selfInstance.callApiInternal(path, httpMethod, pathParams, queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, returnType);
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
callApiInternal(path, httpMethod, pathParams, queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, returnType) {
|
|
534
|
+
var url = this.buildUrl(path, pathParams);
|
|
535
|
+
const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
|
|
536
|
+
let binaryMediaTypes = ['application/octet-stream', 'application/pdf', 'application/zip'];
|
|
537
|
+
if (accepts && accepts.length > 0 && accepts.some(accept => binaryMediaTypes.includes(accept)) && isBrowser && this.downloadDestination) {
|
|
538
|
+
return new Promise((resolve, reject) => {
|
|
539
|
+
// Prepare request for browser download
|
|
540
|
+
const fetchParams = _assertClassBrand(_ApiClient_brand, this, _prepareDownloadBrowserParams).call(this, url, httpMethod, queryParams, headerParams, bodyParam, authNames, contentTypes, accepts);
|
|
541
|
+
fetch(fetchParams.url, fetchParams.options).then(response => {
|
|
542
|
+
if (!response.ok) {
|
|
543
|
+
const err = new Error(`HTTP error ${response.status}`);
|
|
544
|
+
err.status = response.status;
|
|
545
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Error downloading file:", err);
|
|
546
|
+
reject(err);
|
|
465
547
|
}
|
|
466
|
-
if (
|
|
467
|
-
|
|
468
|
-
this.
|
|
548
|
+
if (!(this.downloadDestination instanceof WritableStream)) {
|
|
549
|
+
let errMsg = "Incompatible downloadDestination for Browser Environment, must be WritableStream";
|
|
550
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, errMsg);
|
|
551
|
+
reject(errMsg);
|
|
469
552
|
}
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
553
|
+
const reader = response.body.getReader();
|
|
554
|
+
const writer = this.downloadDestination.getWriter();
|
|
555
|
+
const pump = () => {
|
|
556
|
+
return reader.read().then(({
|
|
557
|
+
done,
|
|
558
|
+
value
|
|
559
|
+
}) => {
|
|
560
|
+
if (done) {
|
|
561
|
+
writer.close();
|
|
562
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Finished streaming response");
|
|
563
|
+
resolve({
|
|
564
|
+
data: {},
|
|
565
|
+
response
|
|
566
|
+
});
|
|
567
|
+
}
|
|
568
|
+
return writer.write(value).then(pump);
|
|
569
|
+
});
|
|
570
|
+
};
|
|
571
|
+
return pump();
|
|
572
|
+
}).catch(error => {
|
|
573
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Caught the following error :", error);
|
|
574
|
+
reject(error);
|
|
575
|
+
});
|
|
576
|
+
});
|
|
577
|
+
}
|
|
578
|
+
var request = (0, _superagent.default)(httpMethod, url);
|
|
579
|
+
|
|
580
|
+
// override request callback to retry only required status codes
|
|
581
|
+
request.oldCallback = request.callback;
|
|
582
|
+
request.callback = function (err, res) {
|
|
583
|
+
if (res && res.status) {
|
|
584
|
+
const status = res.status;
|
|
585
|
+
if (status >= 400 && !(status === 408 || status === 429 || status === 503 || status === 504)) {
|
|
586
|
+
this._maxRetries = 0;
|
|
587
|
+
}
|
|
588
|
+
if (res.status === 401 && this.header["Cookie"]) {
|
|
589
|
+
this.unset("Cookie");
|
|
590
|
+
this._maxRetries = 1;
|
|
591
|
+
}
|
|
592
|
+
if (status === 429) {
|
|
593
|
+
let retryAfter = res.headers['retry-after'];
|
|
594
|
+
if (retryAfter) {
|
|
595
|
+
let delay = parseInt(retryAfter, 10) * 1000;
|
|
596
|
+
this._retryDelays[this._retries] = delay;
|
|
476
597
|
}
|
|
477
598
|
}
|
|
478
|
-
|
|
479
|
-
|
|
599
|
+
}
|
|
600
|
+
this.oldCallback(err, res);
|
|
601
|
+
};
|
|
480
602
|
|
|
481
|
-
|
|
482
|
-
|
|
603
|
+
// apply authentications
|
|
604
|
+
_assertClassBrand(_ApiClient_brand, this, _applyAuthToRequest).call(this, request, authNames);
|
|
483
605
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
606
|
+
// set query parameters
|
|
607
|
+
if (httpMethod.toUpperCase() === 'GET' && this.cache === false) {
|
|
608
|
+
queryParams['_'] = new Date().getTime();
|
|
609
|
+
}
|
|
610
|
+
request.query(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, queryParams));
|
|
489
611
|
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
612
|
+
// set header parameters
|
|
613
|
+
request.set(this.defaultHeaders).set(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, headerParams));
|
|
614
|
+
if ((this.defaultHeaders['NTNX-Request-Id'] === null || this.defaultHeaders['NTNX-Request-Id'] === undefined) && (headerParams['NTNX-Request-Id'] === null || headerParams['NTNX-Request-Id'] === undefined)) {
|
|
615
|
+
let requestId = (0, _uuid.v4)();
|
|
616
|
+
request.set(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, {
|
|
617
|
+
'NTNX-Request-Id': requestId
|
|
618
|
+
}));
|
|
619
|
+
}
|
|
498
620
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
}
|
|
621
|
+
// Set User-Agent header only if it is not a browser environment
|
|
622
|
+
if (!isBrowser) {
|
|
623
|
+
this.downloadDestination = '.';
|
|
624
|
+
request.set(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, {
|
|
625
|
+
'User-Agent': 'Nutanix-objects-js-client/4.0.2'
|
|
626
|
+
}));
|
|
627
|
+
}
|
|
507
628
|
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
629
|
+
// set requestAgent if it is set by user
|
|
630
|
+
if (this.requestAgent) {
|
|
631
|
+
request.agent(this.requestAgent);
|
|
632
|
+
}
|
|
512
633
|
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
}
|
|
524
|
-
} else if (!request.header['Content-Type']) {
|
|
525
|
-
request.type('application/json');
|
|
634
|
+
// set request timeouts
|
|
635
|
+
var timeoutOptions = {};
|
|
636
|
+
timeoutOptions["response"] = _assertClassBrand(_ApiClient_brand, this, _getValidTimeout).call(this, this.connectTimeout, _classPrivateFieldGet(_defaultConnectTimeout, this));
|
|
637
|
+
timeoutOptions["deadline"] = _assertClassBrand(_ApiClient_brand, this, _getValidTimeout).call(this, this.readTimeout, _classPrivateFieldGet(_defaultReadTimeout, this));
|
|
638
|
+
request.timeout(timeoutOptions);
|
|
639
|
+
var contentType = headerParams.hasOwnProperty("Content-Type") ? headerParams["Content-Type"] : _assertClassBrand(_ApiClient_brand, this, _jsonPreferredMime).call(this, contentTypes);
|
|
640
|
+
if (contentType) {
|
|
641
|
+
// Issue with superagent and multipart/form-data (https://github.com/visionmedia/superagent/issues/746)
|
|
642
|
+
if (contentType != 'multipart/form-data') {
|
|
643
|
+
request.type(contentType);
|
|
526
644
|
}
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
645
|
+
} else if (!request.header['Content-Type']) {
|
|
646
|
+
request.type('application/json');
|
|
647
|
+
}
|
|
648
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Request URL :", httpMethod, url);
|
|
649
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, _assertClassBrand(_ApiClient_brand, this, _flatten), "Request Headers :", typeof request.header === "undefined" ? "" : request.header);
|
|
650
|
+
if (contentType === 'application/x-www-form-urlencoded') {
|
|
651
|
+
request.send(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, formParams));
|
|
652
|
+
} else if (contentType == 'multipart/form-data') {
|
|
653
|
+
var _formParams = _assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, formParams);
|
|
654
|
+
for (var key in _formParams) {
|
|
655
|
+
if (_formParams.hasOwnProperty(key)) {
|
|
656
|
+
if (_assertClassBrand(_ApiClient_brand, this, _isFileParam).call(this, _formParams[key])) {
|
|
657
|
+
// file field
|
|
658
|
+
request.attach(key, _formParams[key]);
|
|
659
|
+
} else {
|
|
660
|
+
request.field(key, _formParams[key]);
|
|
541
661
|
}
|
|
542
662
|
}
|
|
543
|
-
}
|
|
544
|
-
|
|
663
|
+
}
|
|
664
|
+
} else if (contentType === 'application/octet-stream' && bodyParam !== null && typeof bodyParam !== 'undefined' && typeof bodyParam.pipe === 'function') {
|
|
665
|
+
// FILE UPLOAD SUPPORT
|
|
545
666
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
} else {
|
|
569
|
-
request.send(bodyParam);
|
|
570
|
-
}
|
|
667
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Piping octet-stream request");
|
|
668
|
+
if (typeof bodyParam.pipe === 'function') {
|
|
669
|
+
bodyParam.pipe(request);
|
|
670
|
+
} else if (typeof require === 'function') {
|
|
671
|
+
let webstream;
|
|
672
|
+
try {
|
|
673
|
+
webstream = require('stream/web');
|
|
674
|
+
} catch (err) {
|
|
675
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Error fetching steam/web");
|
|
676
|
+
}
|
|
677
|
+
if (bodyParam instanceof webstream.ReadableStream) {
|
|
678
|
+
bodyParam.pipeTo(new webstream.WritableStream({
|
|
679
|
+
write(chunk) {
|
|
680
|
+
request.write(chunk);
|
|
681
|
+
},
|
|
682
|
+
close() {
|
|
683
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "READABLE STREAM CLOSED");
|
|
684
|
+
},
|
|
685
|
+
abort(err) {
|
|
686
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "READABLE STREAM ABORTED");
|
|
687
|
+
}
|
|
688
|
+
}));
|
|
571
689
|
} else {
|
|
572
690
|
request.send(bodyParam);
|
|
573
691
|
}
|
|
574
|
-
|
|
575
|
-
request.on('error', function (err) {
|
|
576
|
-
_assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).DEBUG, null, "Caught the following error :", err);
|
|
577
|
-
reject(err);
|
|
578
|
-
}).on('response', function (response) {
|
|
579
|
-
_assertClassBrand(_ApiClient_brand, _this2, _handleApiResponseForPromise).call(_this2, response, path, queryParams, returnType, resolve, reject);
|
|
580
|
-
});
|
|
581
|
-
});
|
|
582
|
-
} else if (bodyParam) {
|
|
692
|
+
} else {
|
|
583
693
|
request.send(bodyParam);
|
|
584
694
|
}
|
|
585
|
-
|
|
586
|
-
request.
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
695
|
+
return new Promise((resolve, reject) => {
|
|
696
|
+
request.on('error', err => {
|
|
697
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Caught the following error :", err);
|
|
698
|
+
reject(err);
|
|
699
|
+
}).on('response', response => {
|
|
700
|
+
_assertClassBrand(_ApiClient_brand, this, _handleApiResponseForPromise).call(this, response, path, queryParams, returnType, resolve, reject);
|
|
701
|
+
});
|
|
702
|
+
});
|
|
703
|
+
} else if (['POST', 'PUT', 'PATCH'].includes(httpMethod.toUpperCase()) && bodyParam) {
|
|
704
|
+
request.send(bodyParam);
|
|
705
|
+
}
|
|
706
|
+
if (typeof returnType === 'Blob') {
|
|
707
|
+
request.responseType('blob');
|
|
708
|
+
} else if (returnType === 'String') {
|
|
709
|
+
request.responseType('string');
|
|
710
|
+
}
|
|
711
|
+
_assertClassBrand(_ApiClient_brand, this, _attachCookies).call(this, request);
|
|
712
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Request Body :", typeof request._data === "undefined" ? "" : request._data);
|
|
713
|
+
var accept = headerParams.hasOwnProperty("Accept") && headerParams["Accept"] != undefined ? headerParams["Accept"] : accepts.join(', ');
|
|
714
|
+
if (accept) {
|
|
715
|
+
request.accept(accept);
|
|
716
|
+
}
|
|
717
|
+
return new Promise((resolve, reject) => {
|
|
718
|
+
request.buffer(false).redirects(0).retry(this.maxRetryAttempts, this.retryInterval, []).withCredentials(this.withCredentials).on('error', err => {
|
|
719
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Caught the following error :", err);
|
|
720
|
+
}).end((error, response) => {
|
|
721
|
+
if (error) {
|
|
722
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Caught error during the request!");
|
|
723
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, error);
|
|
724
|
+
// Reset negotiation flags on 404 to allow future negotiation attempts
|
|
725
|
+
if (error.status === 404) {
|
|
726
|
+
_classPrivateFieldSet(_negotiationCompleted, this, false);
|
|
727
|
+
_classPrivateFieldSet(_negotiatedVersion, this, null);
|
|
728
|
+
}
|
|
729
|
+
if (error.response !== null && typeof error.response !== 'undefined') {
|
|
730
|
+
error.data = _assertClassBrand(_ApiClient_brand, this, _deserialize).call(this, error.response, returnType);
|
|
610
731
|
} else {
|
|
611
|
-
_assertClassBrand(_ApiClient_brand,
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
732
|
+
error.data = _assertClassBrand(_ApiClient_brand, this, _wrapErrorInResponse).call(this, error);
|
|
733
|
+
}
|
|
734
|
+
reject(error);
|
|
735
|
+
} else {
|
|
736
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Response Status :", response.status);
|
|
737
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, _assertClassBrand(_ApiClient_brand, this, _flatten), "Response Headers :", response.headers);
|
|
738
|
+
let contentType = '';
|
|
739
|
+
if (response.headers.hasOwnProperty('content-type')) {
|
|
740
|
+
contentType = response.headers["content-type"];
|
|
741
|
+
}
|
|
742
|
+
let fetchStream = binaryMediaTypes.includes(contentType);
|
|
743
|
+
if (fetchStream) {
|
|
744
|
+
/*
|
|
745
|
+
* Browser environment :
|
|
746
|
+
* Already handled
|
|
747
|
+
* Node.js environment :
|
|
748
|
+
* uses File System, downloadDestination expected to be a directory path, file is downloaded to this directory
|
|
749
|
+
*/
|
|
750
|
+
if (!isBrowser) {
|
|
621
751
|
/*
|
|
622
|
-
* Browser environment :
|
|
623
|
-
*
|
|
624
|
-
*
|
|
625
|
-
*
|
|
752
|
+
* Non Browser environment :
|
|
753
|
+
* - stream data to file
|
|
754
|
+
* - fetch response headers and body (if exists)
|
|
755
|
+
* - return in case of error or after stream finish
|
|
756
|
+
*
|
|
757
|
+
* NOTE :
|
|
758
|
+
* superagent does not provide access to headers before pipe, therefore response is piped to
|
|
759
|
+
* file with temporary name, which is renamed to proper filename after Content-Disposition header is available
|
|
626
760
|
*/
|
|
627
|
-
if (isBrowser) {
|
|
628
|
-
/*
|
|
629
|
-
* Browser environment :
|
|
630
|
-
* - fetch webstream module
|
|
631
|
-
* - write file to WritableStream downloadDestination
|
|
632
|
-
* - if webstream if not available or downloadDestination is not instance of WritableStream
|
|
633
|
-
* code flow goes to main request.then execution
|
|
634
|
-
*/
|
|
635
|
-
if (typeof require === 'function') {
|
|
636
|
-
var _webstream;
|
|
637
|
-
try {
|
|
638
|
-
_webstream = require('stream/web');
|
|
639
|
-
} catch (err) {
|
|
640
|
-
_assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).ERROR, null, "Error fetching steam/web");
|
|
641
|
-
}
|
|
642
|
-
if (_this2.downloadDestination instanceof _webstream.WritableStream) {
|
|
643
|
-
// Piping Data
|
|
644
|
-
var writer = _this2.downloadDestination.getWriter();
|
|
645
|
-
try {
|
|
646
|
-
response.on('data', function (chunk) {
|
|
647
|
-
writer.write(chunk);
|
|
648
|
-
});
|
|
649
|
-
} catch (err) {
|
|
650
|
-
_assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).ERROR, null, "Issue while downloading file", err);
|
|
651
|
-
}
|
|
652
|
-
response.on('end', function () {
|
|
653
|
-
_assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).INFO, null, "Finished streaming response");
|
|
654
|
-
writer.close();
|
|
655
|
-
var data = _assertClassBrand(_ApiClient_brand, _this2, _deserialize).call(_this2, response, returnType);
|
|
656
|
-
resolve({
|
|
657
|
-
data: data,
|
|
658
|
-
response: response
|
|
659
|
-
});
|
|
660
|
-
}).on('error', function (err) {
|
|
661
|
-
_assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).ERROR, null, "Caught the following error :", err);
|
|
662
|
-
err.data = _assertClassBrand(_ApiClient_brand, _this2, _wrapErrorInResponse).call(_this2, err);
|
|
663
|
-
reject(err);
|
|
664
|
-
});
|
|
665
|
-
} else {
|
|
666
|
-
var errMsg = "Incompatible downloadDestination for Browser Environment, must be WritableStream";
|
|
667
|
-
_assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).ERROR, null, errMsg);
|
|
668
|
-
reject(errMsg);
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
} else {
|
|
672
|
-
/*
|
|
673
|
-
* Non Browser environment :
|
|
674
|
-
* - stream data to file
|
|
675
|
-
* - fetch response headers and body (if exists)
|
|
676
|
-
* - return in case of error or after stream finish
|
|
677
|
-
*
|
|
678
|
-
* NOTE :
|
|
679
|
-
* superagent does not provide access to headers before pipe, therefore response is piped to
|
|
680
|
-
* file with temporary name, which is renamed to proper filename after Content-Disposition header is available
|
|
681
|
-
*/
|
|
682
761
|
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
}
|
|
687
|
-
} else if (response.status == 302) {
|
|
688
|
-
/*
|
|
689
|
-
* Handling 302 Redirects
|
|
690
|
-
* - Reads X-Redirect-Token header from response and writes into Cookie header for redirected request
|
|
691
|
-
*/
|
|
692
|
-
var _tempFilename = _this2.downloadDestination + '/downloaded_file_' + Date.now() + '.txt'; // temporary filename
|
|
693
|
-
var context = _this2;
|
|
694
|
-
_assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).INFO, null, "Redirecting to :", response.headers.location);
|
|
695
|
-
var redirectRequest = (0, _superagent["default"])(httpMethod, response.headers.location);
|
|
696
|
-
redirectRequest.set(request.header);
|
|
697
|
-
if (response.headers.hasOwnProperty("x-redirect-token")) {
|
|
698
|
-
_assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).INFO, null, "Writing X-Redirect-Token into Cookie");
|
|
699
|
-
redirectRequest.set("Cookie", response.headers["x-redirect-token"]);
|
|
700
|
-
}
|
|
701
|
-
redirectRequest.redirects(0);
|
|
702
|
-
redirectRequest.buffer(false);
|
|
703
|
-
var redirectedStream = _fs2["default"].createWriteStream(_tempFilename);
|
|
704
|
-
redirectRequest.pipe(redirectedStream);
|
|
705
|
-
redirectRequest.on('response', function (redirectResponse) {
|
|
706
|
-
_assertClassBrand(_ApiClient_brand, context, _log).call(context, _classPrivateFieldGet(_LOG_LEVEL, context).INFO, null, "Received response after redirection :", redirectResponse.status);
|
|
707
|
-
_assertClassBrand(_ApiClient_brand, context, _processDownloadedFile).call(context, redirectResponse, redirectedStream, _tempFilename, resolve, reject, returnType);
|
|
708
|
-
});
|
|
709
|
-
} else {
|
|
710
|
-
_assertClassBrand(_ApiClient_brand, _this2, _handleApiResponseForPromise).call(_this2, response, path, queryParams, returnType, resolve, reject);
|
|
762
|
+
let tempFilename = this.downloadDestination + '/downloaded_file_' + Date.now() + '.txt'; // temporary filename
|
|
763
|
+
let stream = _fs.default.createWriteStream(tempFilename);
|
|
764
|
+
_assertClassBrand(_ApiClient_brand, this, _processDownloadedFile).call(this, response, stream, tempFilename, resolve, reject, returnType);
|
|
711
765
|
}
|
|
766
|
+
} else if (response.status == 302) {
|
|
767
|
+
/*
|
|
768
|
+
* Handling 302 Redirects
|
|
769
|
+
* - Reads X-Redirect-Token header from response and writes into Cookie header for redirected request
|
|
770
|
+
*/
|
|
771
|
+
let tempFilename = this.downloadDestination + '/downloaded_file_' + Date.now() + '.txt'; // temporary filename
|
|
772
|
+
let context = this;
|
|
773
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Redirecting to :", response.headers.location);
|
|
774
|
+
var redirectRequest = (0, _superagent.default)(httpMethod, response.headers.location);
|
|
775
|
+
redirectRequest.set(request.header);
|
|
776
|
+
if (response.headers.hasOwnProperty("x-redirect-token")) {
|
|
777
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Writing X-Redirect-Token into Cookie");
|
|
778
|
+
redirectRequest.set("Cookie", response.headers["x-redirect-token"]);
|
|
779
|
+
}
|
|
780
|
+
if (this.requestAgent) {
|
|
781
|
+
redirectRequest.agent(this.requestAgent);
|
|
782
|
+
}
|
|
783
|
+
redirectRequest.redirects(0);
|
|
784
|
+
redirectRequest.withCredentials(this.withCredentials);
|
|
785
|
+
redirectRequest.buffer(false);
|
|
786
|
+
let redirectedStream = _fs.default.createWriteStream(tempFilename);
|
|
787
|
+
redirectRequest.pipe(redirectedStream);
|
|
788
|
+
redirectRequest.on('response', function (redirectResponse) {
|
|
789
|
+
_assertClassBrand(_ApiClient_brand, context, _log).call(context, _classPrivateFieldGet(_LOG_LEVEL, context).INFO, null, "Received response after redirection :", redirectResponse.status);
|
|
790
|
+
_assertClassBrand(_ApiClient_brand, context, _processDownloadedFile).call(context, redirectResponse, redirectedStream, tempFilename, resolve, reject, returnType);
|
|
791
|
+
});
|
|
792
|
+
} else {
|
|
793
|
+
_assertClassBrand(_ApiClient_brand, this, _handleApiResponseForPromise).call(this, response, path, queryParams, returnType, resolve, reject);
|
|
712
794
|
}
|
|
713
|
-
});
|
|
714
|
-
});
|
|
715
|
-
}
|
|
716
|
-
}], [{
|
|
717
|
-
key: "getEtag",
|
|
718
|
-
value: function getEtag(object) {
|
|
719
|
-
var etag = null;
|
|
720
|
-
if (object !== undefined) {
|
|
721
|
-
if (object.hasOwnProperty('$reserved') && object.get$Reserved() !== undefined) {
|
|
722
|
-
etag = this.getValueForCaseInsensitiveKeyMatch(object.get$Reserved(), 'ETag');
|
|
723
795
|
}
|
|
724
|
-
|
|
725
|
-
|
|
796
|
+
});
|
|
797
|
+
});
|
|
798
|
+
}
|
|
799
|
+
static addEtagReferenceToHeader(bodyParam, headerParams) {
|
|
800
|
+
// set If-Match header from postBody $reserved map
|
|
801
|
+
if (typeof bodyParam !== 'undefined' && bodyParam !== null) {
|
|
802
|
+
if (bodyParam.hasOwnProperty('$reserved') && bodyParam.$reserved.hasOwnProperty('ETag')) {
|
|
803
|
+
let eTagReference = bodyParam.$reserved['ETag'];
|
|
804
|
+
if (typeof eTagReference !== 'undefined' && eTagReference !== null && eTagReference !== "") {
|
|
805
|
+
headerParams['If-Match'] = eTagReference;
|
|
726
806
|
}
|
|
727
807
|
}
|
|
728
|
-
return etag;
|
|
729
|
-
}
|
|
730
|
-
}, {
|
|
731
|
-
key: "getValueForCaseInsensitiveKeyMatch",
|
|
732
|
-
value: function getValueForCaseInsensitiveKeyMatch(object, key) {
|
|
733
|
-
if (object && key) {
|
|
734
|
-
var searchKey = key.toLowerCase();
|
|
735
|
-
var matchedKey = Object.keys(object).find(function (key) {
|
|
736
|
-
return key.toLowerCase() === searchKey;
|
|
737
|
-
});
|
|
738
|
-
return matchedKey ? object[matchedKey] : null;
|
|
739
|
-
}
|
|
740
|
-
return null;
|
|
741
808
|
}
|
|
809
|
+
}
|
|
742
810
|
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
if (bodyParam.hasOwnProperty('$reserved') && bodyParam.$reserved.hasOwnProperty('ETag')) {
|
|
752
|
-
var eTagReference = bodyParam.$reserved['ETag'];
|
|
753
|
-
if (typeof eTagReference !== 'undefined' && eTagReference !== null && eTagReference !== "") {
|
|
754
|
-
headerParams['If-Match'] = eTagReference;
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
|
-
}
|
|
758
|
-
}
|
|
811
|
+
/*
|
|
812
|
+
* Parses an ISO-8601 string representation of a date value.
|
|
813
|
+
* @param {String} str The date value as a string.
|
|
814
|
+
* @returns {Date} The parsed date object.
|
|
815
|
+
*/
|
|
816
|
+
static parseDate(str) {
|
|
817
|
+
return new Date(str);
|
|
818
|
+
}
|
|
759
819
|
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
820
|
+
/*
|
|
821
|
+
* Parses queryParams and path to find a given query param value
|
|
822
|
+
* @param {String} path The path given to callApi method
|
|
823
|
+
* @param {Object.<String, Object>} queryParams The queryParams given to callApi method
|
|
824
|
+
* @param {String} param Parameter name to look for
|
|
825
|
+
* @param {String} defaultValue The default value for the missing param if not present
|
|
826
|
+
* @returns {String} The value of given parameter
|
|
827
|
+
*/
|
|
828
|
+
static parseQueryParam(path, queryParams, param, defaultValue) {
|
|
829
|
+
let value = null;
|
|
830
|
+
if (typeof queryParams !== 'undefined' && queryParams.hasOwnProperty(param)) {
|
|
831
|
+
value = queryParams[param];
|
|
769
832
|
}
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
* @param {String} param Parameter name to look for
|
|
776
|
-
* @param {String} defaultValue The default value for the missing param if not present
|
|
777
|
-
* @returns {String} The value of given parameter
|
|
778
|
-
*/
|
|
779
|
-
}, {
|
|
780
|
-
key: "parseQueryParam",
|
|
781
|
-
value: function parseQueryParam(path, queryParams, param, defaultValue) {
|
|
782
|
-
var value = null;
|
|
783
|
-
if (typeof queryParams !== 'undefined' && queryParams.hasOwnProperty(param)) {
|
|
784
|
-
value = queryParams[param];
|
|
785
|
-
}
|
|
786
|
-
if (value === null && (typeof path === 'string' || path instanceof String)) {
|
|
787
|
-
var escapedParam = param.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
788
|
-
var regexResult = path.match(new RegExp("".concat(escapedParam, "=([0-9]+)")));
|
|
789
|
-
if (regexResult) {
|
|
790
|
-
value = regexResult[1];
|
|
791
|
-
}
|
|
792
|
-
}
|
|
793
|
-
if (value === null) {
|
|
794
|
-
value = defaultValue;
|
|
833
|
+
if (value === null && (typeof path === 'string' || path instanceof String)) {
|
|
834
|
+
const escapedParam = param.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
835
|
+
const regexResult = path.match(new RegExp(`${escapedParam}=([0-9]+)`));
|
|
836
|
+
if (regexResult) {
|
|
837
|
+
value = regexResult[1];
|
|
795
838
|
}
|
|
796
|
-
return value;
|
|
797
839
|
}
|
|
840
|
+
if (value === null) {
|
|
841
|
+
value = defaultValue;
|
|
842
|
+
}
|
|
843
|
+
return value;
|
|
844
|
+
}
|
|
798
845
|
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
846
|
+
/**
|
|
847
|
+
* Converts a value to the specified type.
|
|
848
|
+
* @param {(String|Object)} data The data to convert, as a string or object.
|
|
849
|
+
* @param {(String|Array.<String>|Object.<String, Object>|Function)} type The type to return. Pass a string for simple types
|
|
850
|
+
* or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To
|
|
851
|
+
* return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:
|
|
852
|
+
* all properties on <code>data<code> will be converted to this type.
|
|
853
|
+
* @returns An instance of the specified type or null or undefined if data is null or undefined.
|
|
854
|
+
*/
|
|
855
|
+
static convertToType(data, type) {
|
|
856
|
+
if (data === null || data === undefined) return data;
|
|
857
|
+
switch (type) {
|
|
858
|
+
case 'Boolean':
|
|
859
|
+
return Boolean(data);
|
|
860
|
+
case 'Integer':
|
|
861
|
+
return parseInt(data, 10);
|
|
862
|
+
case 'Number':
|
|
863
|
+
return parseFloat(data);
|
|
864
|
+
case 'String':
|
|
865
|
+
return String(data);
|
|
866
|
+
case 'Date':
|
|
867
|
+
return ApiClient.parseDate(String(data));
|
|
868
|
+
case 'Blob':
|
|
869
|
+
return data;
|
|
870
|
+
default:
|
|
871
|
+
if (type === Object) {
|
|
872
|
+
// generic object, return directly
|
|
824
873
|
return data;
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
if (type.hasOwnProperty(k)) {
|
|
843
|
-
keyType = k;
|
|
844
|
-
valueType = type[k];
|
|
845
|
-
break;
|
|
846
|
-
}
|
|
874
|
+
} else if (typeof type === 'function') {
|
|
875
|
+
// for model type like: User
|
|
876
|
+
return type.constructFromObject(data);
|
|
877
|
+
} else if (Array.isArray(type)) {
|
|
878
|
+
// for array type like: ['String']
|
|
879
|
+
var itemType = type[0];
|
|
880
|
+
return data.map(item => {
|
|
881
|
+
return ApiClient.convertToType(item, itemType);
|
|
882
|
+
});
|
|
883
|
+
} else if (typeof type === 'object') {
|
|
884
|
+
// for plain object type like: {'String': 'Integer'}
|
|
885
|
+
var keyType, valueType;
|
|
886
|
+
for (var k in type) {
|
|
887
|
+
if (type.hasOwnProperty(k)) {
|
|
888
|
+
keyType = k;
|
|
889
|
+
valueType = type[k];
|
|
890
|
+
break;
|
|
847
891
|
}
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
892
|
+
}
|
|
893
|
+
var result = {};
|
|
894
|
+
for (var k in data) {
|
|
895
|
+
if (data.hasOwnProperty(k)) {
|
|
896
|
+
var key = ApiClient.convertToType(k, keyType);
|
|
897
|
+
var value = ApiClient.convertToType(data[k], valueType);
|
|
898
|
+
result[key] = value;
|
|
855
899
|
}
|
|
856
|
-
return result;
|
|
857
|
-
} else {
|
|
858
|
-
// for unknown type, return the data directly
|
|
859
|
-
return data;
|
|
860
900
|
}
|
|
861
|
-
|
|
901
|
+
return result;
|
|
902
|
+
} else {
|
|
903
|
+
// for unknown type, return the data directly
|
|
904
|
+
return data;
|
|
905
|
+
}
|
|
862
906
|
}
|
|
907
|
+
}
|
|
863
908
|
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
for (var k in data) {
|
|
878
|
-
if (data.hasOwnProperty(k)) obj[k] = ApiClient.convertToType(data[k], itemType);
|
|
879
|
-
}
|
|
909
|
+
/**
|
|
910
|
+
* Constructs a new map or array model from REST data.
|
|
911
|
+
* @param data {Object|Array} The REST data.
|
|
912
|
+
* @param obj {Object|Array} The target object or array.
|
|
913
|
+
*/
|
|
914
|
+
static constructFromObject(data, obj, itemType) {
|
|
915
|
+
if (Array.isArray(data)) {
|
|
916
|
+
for (var i = 0; i < data.length; i++) {
|
|
917
|
+
if (data.hasOwnProperty(i)) obj[i] = ApiClient.convertToType(data[i], itemType);
|
|
918
|
+
}
|
|
919
|
+
} else {
|
|
920
|
+
for (var k in data) {
|
|
921
|
+
if (data.hasOwnProperty(k)) obj[k] = ApiClient.convertToType(data[k], itemType);
|
|
880
922
|
}
|
|
881
923
|
}
|
|
882
|
-
}
|
|
883
|
-
}
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
|
|
884
927
|
/**
|
|
885
928
|
* The default API client implementation.
|
|
886
929
|
* @type {ApiClient}
|
|
887
930
|
* @memberOf ApiClient
|
|
888
931
|
*/
|
|
932
|
+
exports.ApiClient = ApiClient;
|
|
889
933
|
_ApiClient = ApiClient;
|
|
890
934
|
function _isJsonMime(contentType) {
|
|
891
935
|
return Boolean(contentType != null && contentType.match(/^application\/json(;.*)?$/i));
|
|
@@ -911,11 +955,11 @@ function _jsonPreferredMime(contentTypes) {
|
|
|
911
955
|
function _isFileParam(param) {
|
|
912
956
|
// fs.ReadStream in Node.js and Electron (but not in runtime like browserify)
|
|
913
957
|
if (typeof require === 'function') {
|
|
914
|
-
|
|
958
|
+
let fs;
|
|
915
959
|
try {
|
|
916
|
-
|
|
960
|
+
fs = require('fs');
|
|
917
961
|
} catch (err) {}
|
|
918
|
-
if (
|
|
962
|
+
if (fs && fs.ReadStream && param instanceof fs.ReadStream) {
|
|
919
963
|
return true;
|
|
920
964
|
}
|
|
921
965
|
}
|
|
@@ -961,17 +1005,16 @@ function _normalizeParams(params) {
|
|
|
961
1005
|
return newParams;
|
|
962
1006
|
}
|
|
963
1007
|
function _applyAuthToRequest(request, authNames) {
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
var auth = _this3.authentications[authName];
|
|
1008
|
+
authNames.forEach(authName => {
|
|
1009
|
+
var auth = this.authentications[authName];
|
|
967
1010
|
switch (auth.type) {
|
|
968
1011
|
case 'basic':
|
|
969
1012
|
if (auth.username || auth.password) {
|
|
970
1013
|
request.auth(auth.username || '', auth.password || '');
|
|
971
|
-
} else if (
|
|
972
|
-
request.auth(
|
|
1014
|
+
} else if (this.username || this.password) {
|
|
1015
|
+
request.auth(this.username || '', this.password || '');
|
|
973
1016
|
}
|
|
974
|
-
_assertClassBrand(_ApiClient_brand,
|
|
1017
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Basic Auth applied to request");
|
|
975
1018
|
break;
|
|
976
1019
|
case 'apiKey':
|
|
977
1020
|
if (auth.apiKey) {
|
|
@@ -987,7 +1030,7 @@ function _applyAuthToRequest(request, authNames) {
|
|
|
987
1030
|
request.query(data);
|
|
988
1031
|
}
|
|
989
1032
|
}
|
|
990
|
-
_assertClassBrand(_ApiClient_brand,
|
|
1033
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "apiKey applied to request");
|
|
991
1034
|
break;
|
|
992
1035
|
case 'oauth2':
|
|
993
1036
|
if (auth.accessToken) {
|
|
@@ -995,10 +1038,10 @@ function _applyAuthToRequest(request, authNames) {
|
|
|
995
1038
|
'Authorization': 'Bearer ' + auth.accessToken
|
|
996
1039
|
});
|
|
997
1040
|
}
|
|
998
|
-
_assertClassBrand(_ApiClient_brand,
|
|
1041
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "oauth2 applied to request");
|
|
999
1042
|
break;
|
|
1000
1043
|
default:
|
|
1001
|
-
_assertClassBrand(_ApiClient_brand,
|
|
1044
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Unknown authentication type:", auth.type);
|
|
1002
1045
|
throw new Error('Unknown authentication type: ' + auth.type);
|
|
1003
1046
|
}
|
|
1004
1047
|
});
|
|
@@ -1036,11 +1079,11 @@ function _deserialize(response, returnType) {
|
|
|
1036
1079
|
data.data = new _buffer.Blob([response.text], {
|
|
1037
1080
|
type: response.headers['content-type']
|
|
1038
1081
|
});
|
|
1039
|
-
|
|
1082
|
+
let flag = new _Flag.default();
|
|
1040
1083
|
flag.name = "hasError";
|
|
1041
1084
|
flag.value = false;
|
|
1042
|
-
|
|
1043
|
-
|
|
1085
|
+
let flags = [flag];
|
|
1086
|
+
let metadata = new _ApiResponseMetadata.default();
|
|
1044
1087
|
metadata.flags = flags;
|
|
1045
1088
|
data.metadata = metadata;
|
|
1046
1089
|
return data;
|
|
@@ -1049,7 +1092,7 @@ function _deserialize(response, returnType) {
|
|
|
1049
1092
|
// Rely on SuperAgent for parsing response body.
|
|
1050
1093
|
// See http://visionmedia.github.io/superagent/#parsing-response-bodies
|
|
1051
1094
|
var data = response.body;
|
|
1052
|
-
if (data == null ||
|
|
1095
|
+
if (data == null || typeof data === 'object' && typeof data.length === 'undefined' && !Object.keys(data).length) {
|
|
1053
1096
|
// SuperAgent does not always produce a body; use the unparsed response as a fallback
|
|
1054
1097
|
data = response.text;
|
|
1055
1098
|
}
|
|
@@ -1063,19 +1106,79 @@ function _deserialize(response, returnType) {
|
|
|
1063
1106
|
*/
|
|
1064
1107
|
function _paginateIfNeeded(data, path, queryParams) {
|
|
1065
1108
|
// If response is not a Paginable instance, nothing to do
|
|
1066
|
-
if (!(data instanceof _Paginable
|
|
1109
|
+
if (!(data instanceof _Paginable.default)) {
|
|
1067
1110
|
return;
|
|
1068
1111
|
}
|
|
1069
1112
|
// Retrieve current page number, defaults to 0
|
|
1070
|
-
|
|
1113
|
+
const page = parseInt(this.constructor.parseQueryParam(path, queryParams, '$page', "0"), 10);
|
|
1071
1114
|
// Retrieve current limit (results per page) number, defaults to 50
|
|
1072
|
-
|
|
1115
|
+
const resultsPerPage = parseInt(this.constructor.parseQueryParam(path, queryParams, '$limit', "50"), 10);
|
|
1073
1116
|
|
|
1074
1117
|
// Populate pagination data
|
|
1075
1118
|
data.populatePaginationMetadata(this,
|
|
1076
1119
|
// current ApiClient instance
|
|
1077
1120
|
page, resultsPerPage);
|
|
1078
1121
|
}
|
|
1122
|
+
function _performNegotiationBetweenVersions(sdk, server) {
|
|
1123
|
+
if (!sdk || !server) {
|
|
1124
|
+
return sdk;
|
|
1125
|
+
}
|
|
1126
|
+
let sdkProps = _assertClassBrand(_ApiClient_brand, this, _getVersionDetails).call(this, sdk);
|
|
1127
|
+
let serverProps = _assertClassBrand(_ApiClient_brand, this, _getVersionDetails).call(this, server);
|
|
1128
|
+
// if major version is different, then do not negotiate
|
|
1129
|
+
// maintain sdk version
|
|
1130
|
+
if (!sdkProps["family"] === serverProps["family"]) {
|
|
1131
|
+
return sdk;
|
|
1132
|
+
}
|
|
1133
|
+
// if sdk version is smaller than highest server version, then maintain sdk version
|
|
1134
|
+
if (_assertClassBrand(_ApiClient_brand, this, _isSmallerMinorVersion).call(this, sdkProps, serverProps)) {
|
|
1135
|
+
return sdk;
|
|
1136
|
+
}
|
|
1137
|
+
// since sdk version is higher than highest server version, use server version
|
|
1138
|
+
return server;
|
|
1139
|
+
}
|
|
1140
|
+
function _isSmallerMinorVersion(p1, p2) {
|
|
1141
|
+
// if revision different, then compare revision
|
|
1142
|
+
if (parseInt(p1["revision"]) != parseInt(p2["revision"])) {
|
|
1143
|
+
return parseInt(p1["revision"]) < parseInt(p2["revision"]);
|
|
1144
|
+
}
|
|
1145
|
+
// revision is same, so compare version_type (release_type + release_type_revision)
|
|
1146
|
+
if (p1["versionType"] === "released") {
|
|
1147
|
+
return false;
|
|
1148
|
+
}
|
|
1149
|
+
let p1ReleaseType = p1["versionType"].substring(0, 1);
|
|
1150
|
+
let p2ReleaseType = p2["versionType"].substring(0, 1);
|
|
1151
|
+
let p1ReleaseTypeRevision = parseInt(p1["versionType"].substring(1));
|
|
1152
|
+
let p2ReleaseTypeRevision = p2["versionType"] === "released" ? 0 : parseInt(p2["versionType"].substring(1));
|
|
1153
|
+
if (p1ReleaseType === p2ReleaseType) {
|
|
1154
|
+
// release type is same, so compare release type revision
|
|
1155
|
+
return p1ReleaseTypeRevision < p2ReleaseTypeRevision;
|
|
1156
|
+
}
|
|
1157
|
+
// release type is different, so alpha must be smallest and released must be largest
|
|
1158
|
+
return p1ReleaseType === "a" || p2["versionType"] === "released";
|
|
1159
|
+
}
|
|
1160
|
+
function _getVersionDetails(version) {
|
|
1161
|
+
let ret = {};
|
|
1162
|
+
if ("unversioned" === version) {
|
|
1163
|
+
ret["family"] = "unversioned";
|
|
1164
|
+
ret["versionType"] = "released";
|
|
1165
|
+
} else {
|
|
1166
|
+
let versionParts = version.toString().split('.');
|
|
1167
|
+
if ("unversioned" === versionParts[0]) {
|
|
1168
|
+
ret["family"] = "unversioned";
|
|
1169
|
+
ret["versionType"] = versionParts[1];
|
|
1170
|
+
} else {
|
|
1171
|
+
ret["family"] = versionParts[0].substring(1);
|
|
1172
|
+
ret["revision"] = versionParts[1];
|
|
1173
|
+
if (versionParts.length == 2) {
|
|
1174
|
+
ret["versionType"] = "released";
|
|
1175
|
+
} else {
|
|
1176
|
+
ret["versionType"] = versionParts[2];
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
return ret;
|
|
1181
|
+
}
|
|
1079
1182
|
function _getValidTimeout(timeout, defaultTimeout) {
|
|
1080
1183
|
if (timeout <= 0) {
|
|
1081
1184
|
timeout = defaultTimeout;
|
|
@@ -1087,27 +1190,18 @@ function _getValidTimeout(timeout, defaultTimeout) {
|
|
|
1087
1190
|
// If enabled, update cookie information to reuse in subsequent requests for a valid response
|
|
1088
1191
|
function _updateCookies(response) {
|
|
1089
1192
|
if (response.hasOwnProperty("headers") && response.headers.hasOwnProperty("set-cookie")) {
|
|
1090
|
-
|
|
1091
|
-
|
|
1193
|
+
let finalCookie = "";
|
|
1194
|
+
let cookieList = response.headers["set-cookie"];
|
|
1092
1195
|
if (cookieList.length > 0) {
|
|
1093
1196
|
// add all cookies separated by ;
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
cookieItem = cookieItem.split(";")[0];
|
|
1100
|
-
if (cookieItem.includes("=")) {
|
|
1101
|
-
cookieItem.trim();
|
|
1102
|
-
finalCookie = finalCookie.concat(cookieItem).concat(";");
|
|
1103
|
-
}
|
|
1197
|
+
for (let cookieItem of cookieList) {
|
|
1198
|
+
cookieItem = cookieItem.split(";")[0];
|
|
1199
|
+
if (cookieItem.includes("=")) {
|
|
1200
|
+
cookieItem.trim();
|
|
1201
|
+
finalCookie = finalCookie.concat(cookieItem).concat(";");
|
|
1104
1202
|
}
|
|
1105
|
-
// remove trailing ;
|
|
1106
|
-
} catch (err) {
|
|
1107
|
-
_iterator2.e(err);
|
|
1108
|
-
} finally {
|
|
1109
|
-
_iterator2.f();
|
|
1110
1203
|
}
|
|
1204
|
+
// remove trailing ;
|
|
1111
1205
|
if (finalCookie !== "") {
|
|
1112
1206
|
finalCookie = finalCookie.substr(0, finalCookie.length - 1);
|
|
1113
1207
|
}
|
|
@@ -1126,21 +1220,18 @@ function _attachCookies(request) {
|
|
|
1126
1220
|
}));
|
|
1127
1221
|
}
|
|
1128
1222
|
}
|
|
1129
|
-
function _log(level, mapper) {
|
|
1130
|
-
for (var _len = arguments.length, messages = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
1131
|
-
messages[_key - 2] = arguments[_key];
|
|
1132
|
-
}
|
|
1223
|
+
function _log(level, mapper, ...messages) {
|
|
1133
1224
|
// Set default log level to INFO
|
|
1134
|
-
if (
|
|
1225
|
+
if (typeof level !== "object" || !("key" in level) || !("value" in level) || typeof level["value"] !== "symbol") {
|
|
1135
1226
|
level = _classPrivateFieldGet(_LOG_LEVEL, this).INFO;
|
|
1136
1227
|
}
|
|
1137
1228
|
if (!_assertClassBrand(_ApiClient_brand, this, _skipLogging).call(this, level)) {
|
|
1138
1229
|
// Preprocess message to prefix with timestamp and log level
|
|
1139
|
-
messages = messages.map(
|
|
1230
|
+
messages = messages.map(message => {
|
|
1140
1231
|
return typeof message === "string" ? message : mapper ? mapper(message) : JSON.stringify(message);
|
|
1141
1232
|
});
|
|
1142
|
-
|
|
1143
|
-
message =
|
|
1233
|
+
let message = messages.join(' ');
|
|
1234
|
+
message = new Date().toISOString() + ' ' + level.key + ' - ' + message;
|
|
1144
1235
|
if (typeof _classPrivateFieldGet(_logger, this) !== "undefined" && _classPrivateFieldGet(_logger, this) !== null && typeof _classPrivateFieldGet(_logger, this).log === 'function') {
|
|
1145
1236
|
_classPrivateFieldGet(_logger, this).log(message);
|
|
1146
1237
|
} else {
|
|
@@ -1152,29 +1243,14 @@ function _skipLogging(level) {
|
|
|
1152
1243
|
// Skip logging if log level is DEBUG but debug is not enabled.
|
|
1153
1244
|
return !this.debug && level === _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG;
|
|
1154
1245
|
}
|
|
1155
|
-
function _getLocalDateTime() {
|
|
1156
|
-
// Current epoch UTC time in milliseconds
|
|
1157
|
-
var epochTime = Date.now();
|
|
1158
|
-
|
|
1159
|
-
// "getTimezoneOffset" returns the difference, in minutes, between a date as evaluated in the UTC time zone,
|
|
1160
|
-
// and the same date as evaluated in the local time zone.
|
|
1161
|
-
// if you are in timezone UTC-1, outputs 60
|
|
1162
|
-
// if you are in timezone UTC+3, outputs -180
|
|
1163
|
-
var timezoneOffsetInMinutes = new Date().getTimezoneOffset();
|
|
1164
|
-
var timezoneOffsetInMilliseconds = timezoneOffsetInMinutes * 60 * 1000;
|
|
1165
|
-
|
|
1166
|
-
// Create a new date with adjusted epoch time based on timezone offset
|
|
1167
|
-
var date = new Date(epochTime - timezoneOffsetInMilliseconds);
|
|
1168
|
-
return date.toISOString().slice(0, 23);
|
|
1169
|
-
}
|
|
1170
1246
|
// A mapper function to flatten a simple non-nested (key:value) object to string
|
|
1171
1247
|
function _flatten(obj) {
|
|
1172
|
-
if (
|
|
1248
|
+
if (typeof obj !== "object") {
|
|
1173
1249
|
return obj;
|
|
1174
1250
|
}
|
|
1175
|
-
|
|
1251
|
+
let output = '\n';
|
|
1176
1252
|
if (obj) {
|
|
1177
|
-
Object.keys(obj).forEach(
|
|
1253
|
+
Object.keys(obj).forEach(e => {
|
|
1178
1254
|
output += e + '=[' + obj[e] + ']\n';
|
|
1179
1255
|
});
|
|
1180
1256
|
}
|
|
@@ -1190,21 +1266,22 @@ function _handleApiResponseForPromise(response, path, queryParams, returnType, r
|
|
|
1190
1266
|
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Response Body :", data);
|
|
1191
1267
|
if (response.status == 204 && data == null) {
|
|
1192
1268
|
resolve({
|
|
1193
|
-
data
|
|
1194
|
-
response
|
|
1269
|
+
data,
|
|
1270
|
+
response
|
|
1195
1271
|
});
|
|
1196
1272
|
} else if (response.ok && data != null) {
|
|
1197
1273
|
this.addEtagToReservedMap(response, data);
|
|
1198
1274
|
_assertClassBrand(_ApiClient_brand, this, _paginateIfNeeded).call(this, data, path, queryParams);
|
|
1199
1275
|
resolve({
|
|
1200
|
-
data
|
|
1201
|
-
response
|
|
1276
|
+
data,
|
|
1277
|
+
response
|
|
1202
1278
|
});
|
|
1203
1279
|
} else {
|
|
1204
1280
|
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, data);
|
|
1205
|
-
reject(
|
|
1281
|
+
reject({
|
|
1282
|
+
...response.error,
|
|
1206
1283
|
data: data
|
|
1207
|
-
})
|
|
1284
|
+
});
|
|
1208
1285
|
}
|
|
1209
1286
|
} catch (err) {
|
|
1210
1287
|
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Caught error while processing response!");
|
|
@@ -1213,58 +1290,159 @@ function _handleApiResponseForPromise(response, path, queryParams, returnType, r
|
|
|
1213
1290
|
reject(err);
|
|
1214
1291
|
}
|
|
1215
1292
|
}
|
|
1293
|
+
function _prepareDownloadBrowserParams(url, httpMethod, queryParams, headerParams, bodyParam, authNames, contentTypes, accepts) {
|
|
1294
|
+
let authHeaders = {};
|
|
1295
|
+
|
|
1296
|
+
// Apply authentication logic
|
|
1297
|
+
authNames.forEach(authName => {
|
|
1298
|
+
const auth = this.authentications[authName];
|
|
1299
|
+
switch (auth.type) {
|
|
1300
|
+
case 'basic':
|
|
1301
|
+
let username = '';
|
|
1302
|
+
let password = '';
|
|
1303
|
+
if (auth.username || auth.password) {
|
|
1304
|
+
username = auth.username || '';
|
|
1305
|
+
password = auth.password || '';
|
|
1306
|
+
} else if (this.username || this.password) {
|
|
1307
|
+
username = this.username || '';
|
|
1308
|
+
password = this.password || '';
|
|
1309
|
+
}
|
|
1310
|
+
if (username || password) {
|
|
1311
|
+
const credentials = btoa(`${username}:${password}`);
|
|
1312
|
+
authHeaders['Authorization'] = `Basic ${credentials}`;
|
|
1313
|
+
}
|
|
1314
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Basic Auth applied to request");
|
|
1315
|
+
break;
|
|
1316
|
+
case 'apiKey':
|
|
1317
|
+
if (auth.apiKey) {
|
|
1318
|
+
let apiKeyValue = '';
|
|
1319
|
+
if (auth.apiKeyPrefix) {
|
|
1320
|
+
apiKeyValue = auth.apiKeyPrefix + ' ' + auth.apiKey;
|
|
1321
|
+
} else {
|
|
1322
|
+
apiKeyValue = auth.apiKey;
|
|
1323
|
+
}
|
|
1324
|
+
if (auth['in'] === 'header') {
|
|
1325
|
+
authHeaders[auth.name] = 'Bearer ' + apiKeyValue;
|
|
1326
|
+
} else if (auth['in'] === 'query') {
|
|
1327
|
+
queryParams[auth.name] = apiKeyValue;
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1330
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "apiKey applied to request");
|
|
1331
|
+
break;
|
|
1332
|
+
case 'oauth2':
|
|
1333
|
+
if (auth.accessToken) {
|
|
1334
|
+
authHeaders['Authorization'] = 'Bearer ' + auth.accessToken;
|
|
1335
|
+
}
|
|
1336
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "oauth2 applied to request");
|
|
1337
|
+
break;
|
|
1338
|
+
default:
|
|
1339
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Unknown authentication type:", auth.type);
|
|
1340
|
+
throw new Error('Unknown authentication type: ' + auth.type);
|
|
1341
|
+
}
|
|
1342
|
+
});
|
|
1343
|
+
|
|
1344
|
+
// set query parameters
|
|
1345
|
+
if (httpMethod.toUpperCase() === 'GET' && this.cache === false) {
|
|
1346
|
+
queryParams['cache'] = 'false';
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
// Build URL with query parameters
|
|
1350
|
+
const normalizedParams = _assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, queryParams);
|
|
1351
|
+
const queryString = Object.keys(normalizedParams).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(normalizedParams[key])}`).join('&');
|
|
1352
|
+
let finalUrl = url;
|
|
1353
|
+
if (queryString) {
|
|
1354
|
+
finalUrl += (finalUrl.includes('?') ? '&' : '?') + queryString;
|
|
1355
|
+
}
|
|
1356
|
+
const finalHeaders = {
|
|
1357
|
+
...this.defaultHeaders,
|
|
1358
|
+
..._assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, headerParams),
|
|
1359
|
+
...authHeaders
|
|
1360
|
+
};
|
|
1361
|
+
|
|
1362
|
+
// set header parameters
|
|
1363
|
+
if ((this.defaultHeaders['NTNX-Request-Id'] === null || this.defaultHeaders['NTNX-Request-Id'] === undefined) && (headerParams['NTNX-Request-Id'] === null || headerParams['NTNX-Request-Id'] === undefined)) {
|
|
1364
|
+
let requestId = (0, _uuid.v4)();
|
|
1365
|
+
finalHeaders['NTNX-Request-Id'] = requestId;
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
//Add cookies if they exist
|
|
1369
|
+
if (_classPrivateFieldGet(_cookie, this) != null) {
|
|
1370
|
+
finalHeaders['Cookie'] = _assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, {
|
|
1371
|
+
'Cookie': _classPrivateFieldGet(_cookie, this)
|
|
1372
|
+
});
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
// Set content type
|
|
1376
|
+
var contentType = headerParams.hasOwnProperty("Content-Type") ? headerParams["Content-Type"] : _assertClassBrand(_ApiClient_brand, this, _jsonPreferredMime).call(this, contentTypes);
|
|
1377
|
+
finalHeaders['Content-Type'] = contentType;
|
|
1378
|
+
|
|
1379
|
+
// Set Accept Header
|
|
1380
|
+
var accept = headerParams.hasOwnProperty("Accept") && headerParams["Accept"] != undefined ? headerParams["Accept"] : accepts.join(', ');
|
|
1381
|
+
if (accept) {
|
|
1382
|
+
finalHeaders['Accept'] = accept;
|
|
1383
|
+
}
|
|
1384
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Request URL :", httpMethod, url);
|
|
1385
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, _assertClassBrand(_ApiClient_brand, this, _flatten), "Request Headers :", finalHeaders);
|
|
1386
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Request Body :", bodyParam || "");
|
|
1387
|
+
return {
|
|
1388
|
+
url: finalUrl,
|
|
1389
|
+
options: {
|
|
1390
|
+
method: httpMethod,
|
|
1391
|
+
headers: finalHeaders,
|
|
1392
|
+
body: bodyParam,
|
|
1393
|
+
credentials: this.withCredentials ? 'include' : 'same-origin'
|
|
1394
|
+
}
|
|
1395
|
+
};
|
|
1396
|
+
}
|
|
1216
1397
|
function _processDownloadedFile(response, stream, tempFilename, resolve, reject, returnType) {
|
|
1217
|
-
var _this4 = this;
|
|
1218
1398
|
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Streaming response to : ", tempFilename);
|
|
1219
1399
|
try {
|
|
1220
|
-
response.on('data',
|
|
1400
|
+
response.on('data', chunk => {
|
|
1221
1401
|
stream.write(chunk);
|
|
1222
1402
|
});
|
|
1223
1403
|
} catch (err) {
|
|
1224
1404
|
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Issue while downloading file", err);
|
|
1225
1405
|
}
|
|
1226
|
-
|
|
1406
|
+
let data = new returnType();
|
|
1227
1407
|
// Fetch filename
|
|
1228
|
-
|
|
1408
|
+
let filename = "";
|
|
1229
1409
|
if (typeof response.headers['content-disposition'] !== 'undefined' && response.headers['content-disposition'] !== null) {
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
}));
|
|
1233
|
-
var filepath = _path["default"].parse(match.groups['filename']);
|
|
1410
|
+
let match = response.headers['content-disposition'].match(/.*filename=\"(?<filename>.*)\".*/);
|
|
1411
|
+
let filepath = _path.default.parse(match.groups['filename']);
|
|
1234
1412
|
filename = this.downloadDestination + '/' + filepath.name + '_' + Date.now() + filepath.ext;
|
|
1235
1413
|
data.data = {
|
|
1236
|
-
"path": _path
|
|
1414
|
+
"path": _path.default.parse(filename),
|
|
1237
1415
|
$objectType: "Path"
|
|
1238
1416
|
};
|
|
1239
|
-
|
|
1417
|
+
let flag = new _Flag.default();
|
|
1240
1418
|
flag.name = "hasError";
|
|
1241
1419
|
flag.value = false;
|
|
1242
|
-
|
|
1243
|
-
|
|
1420
|
+
let flags = [flag];
|
|
1421
|
+
let metadata = new _ApiResponseMetadata.default();
|
|
1244
1422
|
metadata.flags = flags;
|
|
1245
1423
|
data.metadata = metadata;
|
|
1246
1424
|
}
|
|
1247
|
-
response.on('end',
|
|
1248
|
-
_assertClassBrand(_ApiClient_brand,
|
|
1425
|
+
response.on('end', () => {
|
|
1426
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Finished streaming response");
|
|
1249
1427
|
if (filename.length !== 0) {
|
|
1250
|
-
_assertClassBrand(_ApiClient_brand,
|
|
1428
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Content-Disposition header found [", filename, "] is final filename");
|
|
1251
1429
|
stream.close();
|
|
1252
|
-
|
|
1430
|
+
_fs.default.renameSync(tempFilename, filename);
|
|
1253
1431
|
resolve({
|
|
1254
|
-
data
|
|
1255
|
-
response
|
|
1432
|
+
data,
|
|
1433
|
+
response
|
|
1256
1434
|
});
|
|
1257
1435
|
} else {
|
|
1258
|
-
_assertClassBrand(_ApiClient_brand,
|
|
1436
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Content-Disposition header not found [", tempFilename, "] is final filename");
|
|
1259
1437
|
resolve({
|
|
1260
|
-
data
|
|
1261
|
-
response
|
|
1438
|
+
data,
|
|
1439
|
+
response
|
|
1262
1440
|
});
|
|
1263
1441
|
}
|
|
1264
1442
|
});
|
|
1265
|
-
response.on('error',
|
|
1266
|
-
_assertClassBrand(_ApiClient_brand,
|
|
1267
|
-
error.data = _assertClassBrand(_ApiClient_brand,
|
|
1443
|
+
response.on('error', err => {
|
|
1444
|
+
_assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Caught the following error :", err);
|
|
1445
|
+
error.data = _assertClassBrand(_ApiClient_brand, this, _wrapErrorInResponse).call(this, error);
|
|
1268
1446
|
reject(err);
|
|
1269
1447
|
});
|
|
1270
1448
|
}
|