1 | "use strict";
|
2 | var __assign = (this && this.__assign) || function () {
|
3 | __assign = Object.assign || function(t) {
|
4 | for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5 | s = arguments[i];
|
6 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7 | t[p] = s[p];
|
8 | }
|
9 | return t;
|
10 | };
|
11 | return __assign.apply(this, arguments);
|
12 | };
|
13 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
14 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
15 | };
|
16 | Object.defineProperty(exports, "__esModule", { value: true });
|
17 |
|
18 | var get_1 = __importDefault(require("lodash/get"));
|
19 | var promise_1 = require("./utils/promise");
|
20 | var xhr_1 = require("./xhr");
|
21 | var package_json_1 = require("../package.json");
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 | exports.thisPackage = { name: package_json_1.name, version: package_json_1.version };
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 | exports.getIn = function (path) { return function (object) { return get_1.default(object, path); }; };
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 | exports.handlePolling = function (xhrRequest, uri, isPollingDone, options) {
|
52 | if (options === void 0) { options = {}; }
|
53 |
|
54 | var _a = options.attempts, attempts = _a === void 0 ? 0 : _a, _b = options.maxAttempts, maxAttempts = _b === void 0 ? 50 : _b, _c = options.pollStep, pollStep = _c === void 0 ? 5000 : _c;
|
55 | return xhrRequest(uri)
|
56 | .then(function (r) { return r.getData(); })
|
57 | .then(function (response) {
|
58 | if (attempts > maxAttempts) {
|
59 | return Promise.reject(new Error(response));
|
60 | }
|
61 | return isPollingDone(response)
|
62 | ? Promise.resolve(response)
|
63 | : promise_1.delay(pollStep).then(function () {
|
64 | return exports.handlePolling(xhrRequest, uri, isPollingDone, __assign({}, options, { attempts: attempts + 1 }));
|
65 | });
|
66 | });
|
67 | };
|
68 |
|
69 |
|
70 |
|
71 |
|
72 |
|
73 |
|
74 |
|
75 |
|
76 |
|
77 | exports.handleHeadPolling = function (xhrRequest, uri, isPollingDone, options) {
|
78 | if (options === void 0) { options = {}; }
|
79 | var _a = options.attempts, attempts = _a === void 0 ? 0 : _a, _b = options.maxAttempts, maxAttempts = _b === void 0 ? 50 : _b, _c = options.pollStep, pollStep = _c === void 0 ? 5000 : _c;
|
80 | return xhrRequest(uri).then(function (response) {
|
81 | if (attempts > maxAttempts) {
|
82 | return Promise.reject(new Error("Export timeout!!!"));
|
83 | }
|
84 | var responseHeaders = response.getHeaders();
|
85 | if (isPollingDone(responseHeaders, response)) {
|
86 | if (responseHeaders.status === 200) {
|
87 | return Promise.resolve({ uri: uri });
|
88 | }
|
89 | return Promise.reject(new xhr_1.ApiResponseError(response.statusText, response, response.getData()));
|
90 | }
|
91 | else {
|
92 | return promise_1.delay(pollStep).then(function () {
|
93 | return exports.handleHeadPolling(xhrRequest, uri, isPollingDone, __assign({}, options, { attempts: attempts + 1 }));
|
94 | });
|
95 | }
|
96 | });
|
97 | };
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
|
104 |
|
105 | function queryString(query) {
|
106 | function getSingleParam(key, value) {
|
107 | return Array.isArray(value)
|
108 | ? value.map(function (item) { return encodeURIComponent(key) + "=" + encodeURIComponent(item); }).join("&")
|
109 | : encodeURIComponent(key) + "=" + encodeURIComponent(value);
|
110 | }
|
111 | return query
|
112 | ? "?" + Object.keys(query)
|
113 | .map(function (k) { return getSingleParam(k, query[k]); })
|
114 | .join("&")
|
115 | : "";
|
116 | }
|
117 | exports.queryString = queryString;
|
118 |
|
119 |
|
120 |
|
121 |
|
122 |
|
123 |
|
124 |
|
125 |
|
126 |
|
127 |
|
128 | function getAllPagesByOffsetLimit(xhr, uri, itemKey, offset, pagesData) {
|
129 | if (offset === void 0) { offset = 0; }
|
130 | if (pagesData === void 0) { pagesData = []; }
|
131 | var PAGE_LIMIT = 100;
|
132 | return new Promise(function (resolve, reject) {
|
133 | xhr.get(uri + "?offset=" + offset + "&limit=" + PAGE_LIMIT)
|
134 | .then(function (r) { return r.getData(); })
|
135 | .then(function (dataObjects) {
|
136 | var projects = get_1.default(dataObjects, itemKey);
|
137 | var data = pagesData.concat(projects.items);
|
138 | var totalCount = get_1.default(projects, "paging.totalCount", 0);
|
139 | var nextPage = offset + PAGE_LIMIT;
|
140 | if (nextPage > totalCount) {
|
141 | resolve(data);
|
142 | }
|
143 | else {
|
144 | resolve(getAllPagesByOffsetLimit(xhr, uri, itemKey, nextPage, data));
|
145 | }
|
146 | }, reject);
|
147 | });
|
148 | }
|
149 | exports.getAllPagesByOffsetLimit = getAllPagesByOffsetLimit;
|