@or-sdk/contacts 3.2.2-beta.1734.0 → 3.2.2-beta.1737.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -82,6 +82,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
82
82
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
83
83
|
};
|
|
84
84
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
85
|
+
var types_contacts_api_1 = require("@onereach/types-contacts-api");
|
|
85
86
|
var baseApi_1 = require("./baseApi");
|
|
86
87
|
var utils_1 = require("../utils");
|
|
87
88
|
var constants_1 = require("../constants");
|
|
@@ -147,8 +148,6 @@ var ContactApi = (function (_super) {
|
|
|
147
148
|
contacts = data.contacts, rest = __rest(data, ["contacts"]);
|
|
148
149
|
contactsMaxSize = constants_1.REQUEST_PAYLOAD_MAX_BYTES - (0, utils_1.getObjectSizeInBytes)(__assign({}, rest));
|
|
149
150
|
contactsChunks = (0, utils_1.chunkArrByMaxSize)(contacts, contactsMaxSize);
|
|
150
|
-
console.log('contacts count = ', contacts.length);
|
|
151
|
-
console.log('chunks count = ', contactsChunks.length);
|
|
152
151
|
return [2, contactsChunks.length === 1
|
|
153
152
|
? this.createContactsInSingleBatch(data)
|
|
154
153
|
: this.createContactsInMultiBatches(contactsChunks, rest)];
|
|
@@ -230,42 +229,51 @@ var ContactApi = (function (_super) {
|
|
|
230
229
|
});
|
|
231
230
|
});
|
|
232
231
|
};
|
|
233
|
-
ContactApi.prototype.createContactsInSingleBatch = function (data) {
|
|
232
|
+
ContactApi.prototype.createContactsInSingleBatch = function (data, repeats) {
|
|
233
|
+
if (repeats === void 0) { repeats = 0; }
|
|
234
234
|
return __awaiter(this, void 0, void 0, function () {
|
|
235
|
-
var
|
|
235
|
+
var contacts, batchProcess, batchProcessResult, contactIds, importedContacts, e_1;
|
|
236
236
|
return __generator(this, function (_a) {
|
|
237
237
|
switch (_a.label) {
|
|
238
238
|
case 0:
|
|
239
|
-
|
|
239
|
+
contacts = [];
|
|
240
|
+
_a.label = 1;
|
|
241
|
+
case 1:
|
|
242
|
+
_a.trys.push([1, 5, , 6]);
|
|
240
243
|
return [4, this.apiCall({
|
|
241
244
|
method: 'POST',
|
|
242
245
|
route: "".concat(this.apiBasePath, "/bulk"),
|
|
243
246
|
data: data,
|
|
244
247
|
})];
|
|
245
|
-
case
|
|
248
|
+
case 2:
|
|
246
249
|
batchProcess = _a.sent();
|
|
247
250
|
return [4, this.polling(batchProcess.id)];
|
|
248
|
-
case
|
|
251
|
+
case 3:
|
|
249
252
|
batchProcessResult = _a.sent();
|
|
250
253
|
contactIds = batchProcessResult.results.flatMap(function (i) { return JSON.parse(i); });
|
|
251
254
|
return [4, this.getSafelyContactsList(contactIds, data.contact_book)];
|
|
252
|
-
case
|
|
255
|
+
case 4:
|
|
253
256
|
importedContacts = _a.sent();
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
+
contacts = importedContacts.items;
|
|
258
|
+
return [3, 6];
|
|
259
|
+
case 5:
|
|
260
|
+
e_1 = _a.sent();
|
|
261
|
+
if (repeats < constants_1.FAILED_REQUEST_REPEATS) {
|
|
262
|
+
return [2, this.createContactsInSingleBatch(data, repeats + 1)];
|
|
263
|
+
}
|
|
264
|
+
throw e_1;
|
|
265
|
+
case 6: return [2, contacts];
|
|
257
266
|
}
|
|
258
267
|
});
|
|
259
268
|
});
|
|
260
269
|
};
|
|
261
270
|
ContactApi.prototype.createContactsInMultiBatches = function (contactsChunks, data) {
|
|
262
271
|
return __awaiter(this, void 0, void 0, function () {
|
|
263
|
-
var
|
|
272
|
+
var batchPromises, results, promisesBatchSize, i, chunk, chunkResults;
|
|
264
273
|
var _this = this;
|
|
265
274
|
return __generator(this, function (_a) {
|
|
266
275
|
switch (_a.label) {
|
|
267
276
|
case 0:
|
|
268
|
-
ts = performance.now();
|
|
269
277
|
batchPromises = contactsChunks.map(function (contacts) { return function () { return __awaiter(_this, void 0, void 0, function () {
|
|
270
278
|
return __generator(this, function (_a) {
|
|
271
279
|
return [2, this.createContactsInSingleBatch(__assign({ contacts: contacts }, data))];
|
|
@@ -277,43 +285,39 @@ var ContactApi = (function (_super) {
|
|
|
277
285
|
_a.label = 1;
|
|
278
286
|
case 1:
|
|
279
287
|
if (!(i < batchPromises.length)) return [3, 4];
|
|
280
|
-
start = performance.now();
|
|
281
288
|
chunk = batchPromises.slice(i, i + promisesBatchSize);
|
|
282
289
|
return [4, Promise.all(chunk.map(function (p) { return p(); }))];
|
|
283
290
|
case 2:
|
|
284
291
|
chunkResults = _a.sent();
|
|
285
292
|
results.push.apply(results, chunkResults.reduce(function (acc, r) { return (__spreadArray(__spreadArray([], acc, true), r, true)); }, []));
|
|
286
|
-
end = performance.now();
|
|
287
|
-
console.log('4 awaits time = ', (end - start) / 1000);
|
|
288
293
|
_a.label = 3;
|
|
289
294
|
case 3:
|
|
290
295
|
i += promisesBatchSize;
|
|
291
296
|
return [3, 1];
|
|
292
|
-
case 4:
|
|
293
|
-
te = performance.now();
|
|
294
|
-
console.log('total time = ', (te - ts) / 1000);
|
|
295
|
-
return [2, results];
|
|
297
|
+
case 4: return [2, results];
|
|
296
298
|
}
|
|
297
299
|
});
|
|
298
300
|
});
|
|
299
301
|
};
|
|
300
302
|
ContactApi.prototype.polling = function (batchId, repeats) {
|
|
303
|
+
if (repeats === void 0) { repeats = 0; }
|
|
301
304
|
return __awaiter(this, void 0, void 0, function () {
|
|
302
305
|
var batchProcessState;
|
|
303
306
|
var _this = this;
|
|
304
307
|
return __generator(this, function (_a) {
|
|
305
308
|
switch (_a.label) {
|
|
306
309
|
case 0: return [4, this.batchProcessApi.getBatchProcess(batchId).catch(function (e) {
|
|
307
|
-
repeats = repeats || 0;
|
|
308
310
|
if (repeats < constants_1.FAILED_REQUEST_REPEATS) {
|
|
309
311
|
return _this.polling(batchId, repeats + 1);
|
|
310
312
|
}
|
|
311
|
-
throw
|
|
313
|
+
throw e;
|
|
312
314
|
})];
|
|
313
315
|
case 1:
|
|
314
316
|
batchProcessState = _a.sent();
|
|
315
|
-
|
|
316
|
-
|
|
317
|
+
if (batchProcessState.status === types_contacts_api_1.BatchProcessStatus.failed) {
|
|
318
|
+
throw new Error(batchProcessState.messages.join(', '));
|
|
319
|
+
}
|
|
320
|
+
return [2, batchProcessState.status === types_contacts_api_1.BatchProcessStatus.pending ? this.polling(batchId) : batchProcessState];
|
|
317
321
|
}
|
|
318
322
|
});
|
|
319
323
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contactApi.js","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"contactApi.js","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
18
18
|
}
|
|
19
19
|
return t;
|
|
20
20
|
};
|
|
21
|
+
import { BatchProcessStatus, } from '@onereach/types-contacts-api';
|
|
21
22
|
import { BaseApi } from './baseApi';
|
|
22
23
|
import { getObjectSizeInBytes, chunkArrByMaxSize } from '../utils';
|
|
23
24
|
import { REQUEST_PAYLOAD_MAX_BYTES, FAILED_REQUEST_REPEATS, CONTACTS_DELETE_MAX_AMOUNT } from '../constants';
|
|
@@ -78,8 +79,6 @@ export default class ContactApi extends BaseApi {
|
|
|
78
79
|
const { contacts } = data, rest = __rest(data, ["contacts"]);
|
|
79
80
|
const contactsMaxSize = REQUEST_PAYLOAD_MAX_BYTES - getObjectSizeInBytes(Object.assign({}, rest));
|
|
80
81
|
const contactsChunks = chunkArrByMaxSize(contacts, contactsMaxSize);
|
|
81
|
-
console.log('contacts count = ', contacts.length);
|
|
82
|
-
console.log('chunks count = ', contactsChunks.length);
|
|
83
82
|
return contactsChunks.length === 1
|
|
84
83
|
? this.createContactsInSingleBatch(data)
|
|
85
84
|
: this.createContactsInMultiBatches(contactsChunks, rest);
|
|
@@ -142,54 +141,56 @@ export default class ContactApi extends BaseApi {
|
|
|
142
141
|
yield this.polling(batchProcess.id);
|
|
143
142
|
});
|
|
144
143
|
}
|
|
145
|
-
createContactsInSingleBatch(data) {
|
|
144
|
+
createContactsInSingleBatch(data, repeats = 0) {
|
|
146
145
|
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
146
|
+
let contacts = [];
|
|
147
|
+
try {
|
|
148
|
+
const batchProcess = yield this.apiCall({
|
|
149
|
+
method: 'POST',
|
|
150
|
+
route: `${this.apiBasePath}/bulk`,
|
|
151
|
+
data,
|
|
152
|
+
});
|
|
153
|
+
const batchProcessResult = yield this.polling(batchProcess.id);
|
|
154
|
+
const contactIds = batchProcessResult.results.flatMap(i => JSON.parse(i));
|
|
155
|
+
const importedContacts = yield this.getSafelyContactsList(contactIds, data.contact_book);
|
|
156
|
+
contacts = importedContacts.items;
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
if (repeats < FAILED_REQUEST_REPEATS) {
|
|
160
|
+
return this.createContactsInSingleBatch(data, repeats + 1);
|
|
161
|
+
}
|
|
162
|
+
throw e;
|
|
163
|
+
}
|
|
164
|
+
return contacts;
|
|
159
165
|
});
|
|
160
166
|
}
|
|
161
167
|
createContactsInMultiBatches(contactsChunks, data) {
|
|
162
168
|
return __awaiter(this, void 0, void 0, function* () {
|
|
163
|
-
const ts = performance.now();
|
|
164
169
|
const batchPromises = contactsChunks.map((contacts) => () => __awaiter(this, void 0, void 0, function* () {
|
|
165
170
|
return this.createContactsInSingleBatch(Object.assign({ contacts }, data));
|
|
166
171
|
}));
|
|
167
172
|
const results = [];
|
|
168
173
|
const promisesBatchSize = 4;
|
|
169
174
|
for (let i = 0; i < batchPromises.length; i += promisesBatchSize) {
|
|
170
|
-
const start = performance.now();
|
|
171
175
|
const chunk = batchPromises.slice(i, i + promisesBatchSize);
|
|
172
176
|
const chunkResults = yield Promise.all(chunk.map((p) => p()));
|
|
173
177
|
results.push(...chunkResults.reduce((acc, r) => ([...acc, ...r]), []));
|
|
174
|
-
const end = performance.now();
|
|
175
|
-
console.log('4 awaits time = ', (end - start) / 1000);
|
|
176
178
|
}
|
|
177
|
-
const te = performance.now();
|
|
178
|
-
console.log('total time = ', (te - ts) / 1000);
|
|
179
179
|
return results;
|
|
180
180
|
});
|
|
181
181
|
}
|
|
182
|
-
polling(batchId, repeats) {
|
|
182
|
+
polling(batchId, repeats = 0) {
|
|
183
183
|
return __awaiter(this, void 0, void 0, function* () {
|
|
184
184
|
const batchProcessState = yield this.batchProcessApi.getBatchProcess(batchId).catch((e) => {
|
|
185
|
-
repeats = repeats || 0;
|
|
186
185
|
if (repeats < FAILED_REQUEST_REPEATS) {
|
|
187
186
|
return this.polling(batchId, repeats + 1);
|
|
188
187
|
}
|
|
189
|
-
throw
|
|
188
|
+
throw e;
|
|
190
189
|
});
|
|
191
|
-
|
|
192
|
-
|
|
190
|
+
if (batchProcessState.status === BatchProcessStatus.failed) {
|
|
191
|
+
throw new Error(batchProcessState.messages.join(', '));
|
|
192
|
+
}
|
|
193
|
+
return batchProcessState.status === BatchProcessStatus.pending ? this.polling(batchId) : batchProcessState;
|
|
193
194
|
});
|
|
194
195
|
}
|
|
195
196
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contactApi.js","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"contactApi.js","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contactApi.d.ts","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"contactApi.d.ts","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAEhB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAIhD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAE3C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,eAAe;gBADJ,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,EAC3D,eAAe,EAAE,eAAe;IAK1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAOzC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY7E,WAAW,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAa3E,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAa9E,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAatE,WAAW,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7D,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY5D,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAexF,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAanF,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlE,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAajE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtE,mBAAmB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;YAQvD,qBAAqB;YAkBrB,kBAAkB;YASlB,2BAA2B;YAyB3B,4BAA4B;YAuB5B,OAAO;CAatB"}
|
package/package.json
CHANGED
package/src/api/contactApi.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BatchProcessResponseDto,
|
|
3
|
+
BatchProcessStatus,
|
|
3
4
|
ContactParamsDto,
|
|
4
5
|
ContactRequestDto,
|
|
5
6
|
ContactResponseDto,
|
|
@@ -119,10 +120,6 @@ export default class ContactApi extends BaseApi {
|
|
|
119
120
|
const contactsMaxSize = REQUEST_PAYLOAD_MAX_BYTES - getObjectSizeInBytes({ ...rest });
|
|
120
121
|
const contactsChunks = chunkArrByMaxSize(contacts, contactsMaxSize);
|
|
121
122
|
|
|
122
|
-
// eslint-disable-next-line no-console
|
|
123
|
-
console.log('contacts count = ', contacts.length);
|
|
124
|
-
// eslint-disable-next-line no-console
|
|
125
|
-
console.log('chunks count = ', contactsChunks.length);
|
|
126
123
|
return contactsChunks.length === 1
|
|
127
124
|
? this.createContactsInSingleBatch(data)
|
|
128
125
|
: this.createContactsInMultiBatches(contactsChunks, rest);
|
|
@@ -218,27 +215,35 @@ export default class ContactApi extends BaseApi {
|
|
|
218
215
|
await this.polling(batchProcess.id);
|
|
219
216
|
}
|
|
220
217
|
|
|
221
|
-
private async createContactsInSingleBatch(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
218
|
+
private async createContactsInSingleBatch(
|
|
219
|
+
data: CreateMultipleContactsDto,
|
|
220
|
+
repeats = 0
|
|
221
|
+
): Promise<ContactResponseDto[]> {
|
|
222
|
+
let contacts: ContactResponseDto[] = [];
|
|
223
|
+
try {
|
|
224
|
+
const batchProcess = await this.apiCall<BatchProcessResponseDto>({
|
|
225
|
+
method: 'POST',
|
|
226
|
+
route: `${this.apiBasePath}/bulk`,
|
|
227
|
+
data,
|
|
228
|
+
});
|
|
229
|
+
const batchProcessResult = await this.polling(batchProcess.id);
|
|
230
|
+
const contactIds = batchProcessResult.results.flatMap<string>(i => JSON.parse(i));
|
|
231
|
+
const importedContacts = await this.getSafelyContactsList(contactIds, data.contact_book);
|
|
232
|
+
contacts = importedContacts.items;
|
|
233
|
+
} catch (e) {
|
|
234
|
+
if (repeats < FAILED_REQUEST_REPEATS) {
|
|
235
|
+
return this.createContactsInSingleBatch(data, repeats + 1);
|
|
236
|
+
}
|
|
237
|
+
throw e;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return contacts;
|
|
235
241
|
}
|
|
236
242
|
|
|
237
243
|
private async createContactsInMultiBatches(
|
|
238
244
|
contactsChunks: ContactRequestDto[][],
|
|
239
245
|
data: Omit<CreateMultipleContactsDto, 'contacts'>
|
|
240
246
|
): Promise<ContactResponseDto[]> {
|
|
241
|
-
const ts = performance.now();
|
|
242
247
|
const batchPromises = contactsChunks.map(
|
|
243
248
|
(contacts) => async () => this.createContactsInSingleBatch({
|
|
244
249
|
contacts,
|
|
@@ -248,34 +253,27 @@ export default class ContactApi extends BaseApi {
|
|
|
248
253
|
const results: ContactResponseDto[] = [];
|
|
249
254
|
const promisesBatchSize = 4;
|
|
250
255
|
for (let i = 0;i < batchPromises.length;i += promisesBatchSize) {
|
|
251
|
-
const start = performance.now();
|
|
252
256
|
const chunk = batchPromises.slice(i, i + promisesBatchSize);
|
|
253
257
|
const chunkResults = await Promise.all(chunk.map((p) => p()));
|
|
254
258
|
results.push(...chunkResults.reduce((acc, r) => ([...acc, ...r]), []));
|
|
255
|
-
const end = performance.now();
|
|
256
|
-
// eslint-disable-next-line no-console
|
|
257
|
-
console.log('4 awaits time = ', (end - start) / 1000);
|
|
258
259
|
}
|
|
259
|
-
const te = performance.now();
|
|
260
|
-
// eslint-disable-next-line no-console
|
|
261
|
-
console.log('total time = ', (te - ts) / 1000);
|
|
262
260
|
return results;
|
|
263
261
|
}
|
|
264
262
|
|
|
265
263
|
/**
|
|
266
264
|
* Pols specific batch process until status of it isn't turned from 'pending to something else.
|
|
267
265
|
*/
|
|
268
|
-
private async polling(batchId: string, repeats
|
|
266
|
+
private async polling(batchId: string, repeats = 0): Promise<BatchProcessResponseDto> {
|
|
269
267
|
const batchProcessState = await this.batchProcessApi.getBatchProcess(batchId).catch((e) => {
|
|
270
|
-
repeats = repeats || 0;
|
|
271
268
|
if (repeats < FAILED_REQUEST_REPEATS) {
|
|
272
269
|
return this.polling(batchId, repeats + 1);
|
|
273
270
|
}
|
|
274
|
-
throw
|
|
271
|
+
throw e;
|
|
275
272
|
});
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
273
|
+
|
|
274
|
+
if (batchProcessState.status === BatchProcessStatus.failed) {
|
|
275
|
+
throw new Error(batchProcessState.messages.join(', '));
|
|
276
|
+
}
|
|
277
|
+
return batchProcessState.status === BatchProcessStatus.pending ? this.polling(batchId) : batchProcessState;
|
|
280
278
|
}
|
|
281
279
|
}
|