@or-sdk/contacts 3.5.7-beta.2174.0 → 3.5.7-beta.2175.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.
- package/dist/cjs/api/bulkContactsCreateApi.js +66 -22
- package/dist/cjs/api/bulkContactsCreateApi.js.map +1 -1
- package/dist/esm/api/bulkContactsCreateApi.js +37 -5
- package/dist/esm/api/bulkContactsCreateApi.js.map +1 -1
- package/dist/types/api/bulkContactsCreateApi.d.ts +5 -2
- package/dist/types/api/bulkContactsCreateApi.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api/bulkContactsCreateApi.ts +46 -5
|
@@ -89,9 +89,9 @@ var BulkContactsCreateApi = (function (_super) {
|
|
|
89
89
|
_this.apiBasePath = 'bulk-create';
|
|
90
90
|
return _this;
|
|
91
91
|
}
|
|
92
|
-
BulkContactsCreateApi.prototype.bulkCreateContacts = function (data) {
|
|
92
|
+
BulkContactsCreateApi.prototype.bulkCreateContacts = function (bulkName, data) {
|
|
93
93
|
return __awaiter(this, void 0, void 0, function () {
|
|
94
|
-
var dataWithContactKeys, results, contacts, rest, contactsMaxSize, contactsChunks,
|
|
94
|
+
var dataWithContactKeys, results, contacts, rest, contactsMaxSize, contactsChunks, indicesOnBatchId_1;
|
|
95
95
|
var _this = this;
|
|
96
96
|
return __generator(this, function (_a) {
|
|
97
97
|
switch (_a.label) {
|
|
@@ -104,38 +104,71 @@ var BulkContactsCreateApi = (function (_super) {
|
|
|
104
104
|
created: {},
|
|
105
105
|
failed: {},
|
|
106
106
|
};
|
|
107
|
-
|
|
107
|
+
return [4, this.setBulkProgress(bulkName)];
|
|
108
108
|
case 2:
|
|
109
|
-
_a.
|
|
109
|
+
_a.sent();
|
|
110
|
+
_a.label = 3;
|
|
111
|
+
case 3:
|
|
112
|
+
_a.trys.push([3, , 9, 11]);
|
|
110
113
|
contacts = dataWithContactKeys.contacts, rest = __rest(dataWithContactKeys, ["contacts"]);
|
|
111
114
|
contactsMaxSize = constants_1.REQUEST_PAYLOAD_MAX_BYTES - (0, utils_1.getObjectSizeInBytes)(__assign({}, rest));
|
|
112
115
|
contactsChunks = (0, utils_1.chunkArrByMaxSize)(contacts, contactsMaxSize);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
case 3:
|
|
116
|
+
if (!(contactsChunks.length === 1)) return [3, 5];
|
|
117
|
+
return [4, this.createContactsInSingleBatch(dataWithContactKeys, bulkName)];
|
|
118
|
+
case 4:
|
|
117
119
|
_a.sent();
|
|
118
|
-
return [3,
|
|
119
|
-
case
|
|
120
|
-
case
|
|
120
|
+
return [3, 7];
|
|
121
|
+
case 5: return [4, this.createContactsInMultiBatches(contactsChunks, rest, bulkName)];
|
|
122
|
+
case 6:
|
|
121
123
|
_a.sent();
|
|
122
|
-
_a.label =
|
|
123
|
-
case
|
|
124
|
-
case 7:
|
|
125
|
-
results = _a.sent();
|
|
126
|
-
return [3, 10];
|
|
124
|
+
_a.label = 7;
|
|
125
|
+
case 7: return [4, this.getBulkCreateResults(bulkName)];
|
|
127
126
|
case 8:
|
|
127
|
+
results = _a.sent();
|
|
128
|
+
return [3, 11];
|
|
129
|
+
case 9:
|
|
128
130
|
indicesOnBatchId_1 = (0, uuid_1.v4)();
|
|
129
131
|
this.indicesOn(indicesOnBatchId_1);
|
|
130
132
|
return [4, (0, utils_1.debouncePromise)(function () { return _this.polling(indicesOnBatchId_1); }, 3000)];
|
|
131
|
-
case
|
|
133
|
+
case 10:
|
|
132
134
|
_a.sent();
|
|
133
135
|
return [7];
|
|
134
|
-
case
|
|
136
|
+
case 11: return [2, results];
|
|
135
137
|
}
|
|
136
138
|
});
|
|
137
139
|
});
|
|
138
140
|
};
|
|
141
|
+
BulkContactsCreateApi.prototype.getBulkProgress = function (bulkName) {
|
|
142
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
143
|
+
return __generator(this, function (_a) {
|
|
144
|
+
return [2, this.apiCall({
|
|
145
|
+
method: 'GET',
|
|
146
|
+
route: "".concat(this.apiBasePath, "/bulk-progress/").concat(bulkName),
|
|
147
|
+
})];
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
BulkContactsCreateApi.prototype.setBulkProgress = function (bulkName) {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
153
|
+
return __generator(this, function (_a) {
|
|
154
|
+
return [2, this.apiCall({
|
|
155
|
+
method: 'POST',
|
|
156
|
+
route: "".concat(this.apiBasePath, "/bulk-progress/").concat(bulkName),
|
|
157
|
+
})];
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
BulkContactsCreateApi.prototype.updateBulkProgress = function (bulkName, progress) {
|
|
162
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
163
|
+
return __generator(this, function (_a) {
|
|
164
|
+
return [2, this.apiCall({
|
|
165
|
+
method: 'PATCH',
|
|
166
|
+
route: "".concat(this.apiBasePath, "/bulk-progress/").concat(bulkName),
|
|
167
|
+
data: progress,
|
|
168
|
+
})];
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
};
|
|
139
172
|
BulkContactsCreateApi.prototype.updateContactsWithContactKeys = function (data) {
|
|
140
173
|
var dataWithContactKeys = __assign(__assign({}, data), { contacts: data.contacts.map(function (c, idx) {
|
|
141
174
|
if (c.contactKey !== undefined) {
|
|
@@ -221,10 +254,10 @@ var BulkContactsCreateApi = (function (_super) {
|
|
|
221
254
|
};
|
|
222
255
|
BulkContactsCreateApi.prototype.createContactsInSingleBatch = function (data, batchGroupId) {
|
|
223
256
|
return __awaiter(this, void 0, void 0, function () {
|
|
224
|
-
var batchId;
|
|
257
|
+
var batchId, _a, totalBatches, totalContacts, completedBatches, completedContacts;
|
|
225
258
|
var _this = this;
|
|
226
|
-
return __generator(this, function (
|
|
227
|
-
switch (
|
|
259
|
+
return __generator(this, function (_b) {
|
|
260
|
+
switch (_b.label) {
|
|
228
261
|
case 0:
|
|
229
262
|
batchId = (0, uuid_1.v4)();
|
|
230
263
|
this.apiCall({
|
|
@@ -234,7 +267,18 @@ var BulkContactsCreateApi = (function (_super) {
|
|
|
234
267
|
});
|
|
235
268
|
return [4, (0, utils_1.debouncePromise)(function () { return _this.polling(batchId); }, 3000)];
|
|
236
269
|
case 1:
|
|
237
|
-
|
|
270
|
+
_b.sent();
|
|
271
|
+
return [4, this.getBulkProgress(batchGroupId)];
|
|
272
|
+
case 2:
|
|
273
|
+
_a = _b.sent(), totalBatches = _a.totalBatches, totalContacts = _a.totalContacts, completedBatches = _a.completedBatches, completedContacts = _a.completedContacts;
|
|
274
|
+
return [4, this.updateBulkProgress(batchGroupId, {
|
|
275
|
+
totalBatches: totalBatches,
|
|
276
|
+
totalContacts: totalContacts,
|
|
277
|
+
completedBatches: completedBatches + 1,
|
|
278
|
+
completedContacts: completedContacts + data.contacts.length,
|
|
279
|
+
})];
|
|
280
|
+
case 3:
|
|
281
|
+
_b.sent();
|
|
238
282
|
return [2];
|
|
239
283
|
}
|
|
240
284
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkContactsCreateApi.js","sourceRoot":"","sources":["../../../src/api/bulkContactsCreateApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0EAAiD;AAEjD,0CAAyD;AACzD,kCAAoF;AACpF,6BAA0B;
|
|
1
|
+
{"version":3,"file":"bulkContactsCreateApi.js","sourceRoot":"","sources":["../../../src/api/bulkContactsCreateApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
29
29
|
this.batchProcessApi = batchProcessApi;
|
|
30
30
|
this.apiBasePath = 'bulk-create';
|
|
31
31
|
}
|
|
32
|
-
bulkCreateContacts(data) {
|
|
32
|
+
bulkCreateContacts(bulkName, data) {
|
|
33
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
34
|
const dataWithContactKeys = this.updateContactsWithContactKeys(data);
|
|
35
35
|
yield this.indicesOff();
|
|
@@ -37,18 +37,18 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
37
37
|
created: {},
|
|
38
38
|
failed: {},
|
|
39
39
|
};
|
|
40
|
+
yield this.setBulkProgress(bulkName);
|
|
40
41
|
try {
|
|
41
42
|
const { contacts } = dataWithContactKeys, rest = __rest(dataWithContactKeys, ["contacts"]);
|
|
42
43
|
const contactsMaxSize = REQUEST_PAYLOAD_MAX_BYTES - getObjectSizeInBytes(Object.assign({}, rest));
|
|
43
44
|
const contactsChunks = chunkArrByMaxSize(contacts, contactsMaxSize);
|
|
44
|
-
const batchGroupId = v4();
|
|
45
45
|
if (contactsChunks.length === 1) {
|
|
46
|
-
yield this.createContactsInSingleBatch(dataWithContactKeys,
|
|
46
|
+
yield this.createContactsInSingleBatch(dataWithContactKeys, bulkName);
|
|
47
47
|
}
|
|
48
48
|
else {
|
|
49
|
-
yield this.createContactsInMultiBatches(contactsChunks, rest,
|
|
49
|
+
yield this.createContactsInMultiBatches(contactsChunks, rest, bulkName);
|
|
50
50
|
}
|
|
51
|
-
results = yield this.getBulkCreateResults(
|
|
51
|
+
results = yield this.getBulkCreateResults(bulkName);
|
|
52
52
|
}
|
|
53
53
|
finally {
|
|
54
54
|
const indicesOnBatchId = v4();
|
|
@@ -58,6 +58,31 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
58
58
|
return results;
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
+
getBulkProgress(bulkName) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
return this.apiCall({
|
|
64
|
+
method: 'GET',
|
|
65
|
+
route: `${this.apiBasePath}/bulk-progress/${bulkName}`,
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
setBulkProgress(bulkName) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
return this.apiCall({
|
|
72
|
+
method: 'POST',
|
|
73
|
+
route: `${this.apiBasePath}/bulk-progress/${bulkName}`,
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
updateBulkProgress(bulkName, progress) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
return this.apiCall({
|
|
80
|
+
method: 'PATCH',
|
|
81
|
+
route: `${this.apiBasePath}/bulk-progress/${bulkName}`,
|
|
82
|
+
data: progress,
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
61
86
|
updateContactsWithContactKeys(data) {
|
|
62
87
|
const dataWithContactKeys = Object.assign(Object.assign({}, data), { contacts: data.contacts.map((c, idx) => {
|
|
63
88
|
if (c.contactKey !== undefined) {
|
|
@@ -125,6 +150,13 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
125
150
|
batchGroupId }),
|
|
126
151
|
});
|
|
127
152
|
yield debouncePromise(() => this.polling(batchId), 3000);
|
|
153
|
+
const { totalBatches, totalContacts, completedBatches, completedContacts, } = yield this.getBulkProgress(batchGroupId);
|
|
154
|
+
yield this.updateBulkProgress(batchGroupId, {
|
|
155
|
+
totalBatches,
|
|
156
|
+
totalContacts,
|
|
157
|
+
completedBatches: completedBatches + 1,
|
|
158
|
+
completedContacts: completedContacts + data.contacts.length,
|
|
159
|
+
});
|
|
128
160
|
});
|
|
129
161
|
}
|
|
130
162
|
createContactsInMultiBatches(contactsChunks, data, batchGroupId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkContactsCreateApi.js","sourceRoot":"","sources":["../../../src/api/bulkContactsCreateApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"bulkContactsCreateApi.js","sourceRoot":"","sources":["../../../src/api/bulkContactsCreateApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { CalApiParams } from '@or-sdk/base';
|
|
2
2
|
import BaseWithPoling from './baseWithPolingApi';
|
|
3
3
|
import BatchProcessApi from './batchProcessApi';
|
|
4
|
-
import { BulkCreateResultsDto } from '@onereach/types-contacts-api';
|
|
4
|
+
import { BulkCreateResultsDto, BulkProgressDto } from '@onereach/types-contacts-api';
|
|
5
5
|
import { BulkCreateData } from '../types';
|
|
6
6
|
export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
7
7
|
protected readonly apiCall: <T>(params: CalApiParams) => Promise<T>;
|
|
8
8
|
protected batchProcessApi: BatchProcessApi;
|
|
9
9
|
constructor(apiCall: <T>(params: CalApiParams) => Promise<T>, batchProcessApi: BatchProcessApi);
|
|
10
10
|
private readonly apiBasePath;
|
|
11
|
-
bulkCreateContacts(data: BulkCreateData): Promise<BulkCreateResultsDto>;
|
|
11
|
+
bulkCreateContacts(bulkName: string, data: BulkCreateData): Promise<BulkCreateResultsDto>;
|
|
12
|
+
getBulkProgress(bulkName: string): Promise<BulkProgressDto>;
|
|
13
|
+
private setBulkProgress;
|
|
14
|
+
private updateBulkProgress;
|
|
12
15
|
private updateContactsWithContactKeys;
|
|
13
16
|
private indicesOn;
|
|
14
17
|
private indicesOff;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkContactsCreateApi.d.ts","sourceRoot":"","sources":["../../../src/api/bulkContactsCreateApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAIhD,OAAO,
|
|
1
|
+
{"version":3,"file":"bulkContactsCreateApi.d.ts","sourceRoot":"","sources":["../../../src/api/bulkContactsCreateApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAEL,oBAAoB,EACpB,eAAe,EAEhB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAuB,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,cAAc;IAE7D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;IACnE,SAAS,CAAC,eAAe,EAAE,eAAe;gBADvB,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,EACzD,eAAe,EAAE,eAAe;IAK5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IA4BhC,kBAAkB,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,oBAAoB,CAAC;IA8B1B,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;YAOnD,eAAe;YAOf,kBAAkB;IAQhC,OAAO,CAAC,6BAA6B;YAmBvB,SAAS;YAOT,UAAU;IAOxB,OAAO,CAAC,4BAA4B;IAQvB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAsBxE,kBAAkB;YAOlB,2BAA2B;YA+B3B,4BAA4B;CAmB3C"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,12 @@ import BatchProcessApi from './batchProcessApi';
|
|
|
4
4
|
import { REQUEST_PAYLOAD_MAX_BYTES } from '../constants';
|
|
5
5
|
import { chunkArrByMaxSize, debouncePromise, getObjectSizeInBytes } from '../utils';
|
|
6
6
|
import { v4 } from 'uuid';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
BulkContactDto,
|
|
9
|
+
BulkCreateResultsDto,
|
|
10
|
+
BulkProgressDto,
|
|
11
|
+
CreateBulkResponseDto,
|
|
12
|
+
} from '@onereach/types-contacts-api';
|
|
8
13
|
import { BatchBulkCreateData, BulkCreateData } from '../types';
|
|
9
14
|
|
|
10
15
|
export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
@@ -44,6 +49,7 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
44
49
|
* of contact.
|
|
45
50
|
*/
|
|
46
51
|
public async bulkCreateContacts(
|
|
52
|
+
bulkName: string,
|
|
47
53
|
data: BulkCreateData
|
|
48
54
|
): Promise<BulkCreateResultsDto> {
|
|
49
55
|
const dataWithContactKeys = this.updateContactsWithContactKeys(data);
|
|
@@ -53,19 +59,19 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
53
59
|
created: {},
|
|
54
60
|
failed: {},
|
|
55
61
|
};
|
|
62
|
+
await this.setBulkProgress(bulkName);
|
|
56
63
|
try {
|
|
57
64
|
const { contacts, ...rest } = dataWithContactKeys;
|
|
58
65
|
const contactsMaxSize = REQUEST_PAYLOAD_MAX_BYTES - getObjectSizeInBytes({ ...rest });
|
|
59
66
|
const contactsChunks = chunkArrByMaxSize(contacts, contactsMaxSize);
|
|
60
|
-
const batchGroupId = v4();
|
|
61
67
|
|
|
62
68
|
if (contactsChunks.length === 1) {
|
|
63
|
-
await this.createContactsInSingleBatch(dataWithContactKeys as BatchBulkCreateData,
|
|
69
|
+
await this.createContactsInSingleBatch(dataWithContactKeys as BatchBulkCreateData, bulkName);
|
|
64
70
|
} else {
|
|
65
|
-
await this.createContactsInMultiBatches(contactsChunks as BulkContactDto[][], rest,
|
|
71
|
+
await this.createContactsInMultiBatches(contactsChunks as BulkContactDto[][], rest, bulkName);
|
|
66
72
|
}
|
|
67
73
|
|
|
68
|
-
results = await this.getBulkCreateResults(
|
|
74
|
+
results = await this.getBulkCreateResults(bulkName);
|
|
69
75
|
} finally {
|
|
70
76
|
const indicesOnBatchId = v4();
|
|
71
77
|
this.indicesOn(indicesOnBatchId);
|
|
@@ -75,6 +81,28 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
75
81
|
return results;
|
|
76
82
|
}
|
|
77
83
|
|
|
84
|
+
async getBulkProgress(bulkName: string): Promise<BulkProgressDto> {
|
|
85
|
+
return this.apiCall({
|
|
86
|
+
method: 'GET',
|
|
87
|
+
route: `${this.apiBasePath}/bulk-progress/${bulkName}`,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
private async setBulkProgress(bulkName: string): Promise<void> {
|
|
92
|
+
return this.apiCall({
|
|
93
|
+
method: 'POST',
|
|
94
|
+
route: `${this.apiBasePath}/bulk-progress/${bulkName}`,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
private async updateBulkProgress(bulkName: string, progress: BulkProgressDto): Promise<void> {
|
|
99
|
+
return this.apiCall({
|
|
100
|
+
method: 'PATCH',
|
|
101
|
+
route: `${this.apiBasePath}/bulk-progress/${bulkName}`,
|
|
102
|
+
data: progress,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
|
|
78
106
|
private updateContactsWithContactKeys(data: BulkCreateData): BatchBulkCreateData {
|
|
79
107
|
const dataWithContactKeys = {
|
|
80
108
|
...data,
|
|
@@ -161,6 +189,19 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
161
189
|
});
|
|
162
190
|
// giving time to 2 lambdas to wake up (1 - create Batch and 2 - ping batch status)
|
|
163
191
|
await debouncePromise(() => this.polling(batchId), 3000);
|
|
192
|
+
|
|
193
|
+
const {
|
|
194
|
+
totalBatches,
|
|
195
|
+
totalContacts,
|
|
196
|
+
completedBatches,
|
|
197
|
+
completedContacts,
|
|
198
|
+
} = await this.getBulkProgress(batchGroupId);
|
|
199
|
+
await this.updateBulkProgress(batchGroupId, {
|
|
200
|
+
totalBatches,
|
|
201
|
+
totalContacts,
|
|
202
|
+
completedBatches: completedBatches + 1,
|
|
203
|
+
completedContacts: completedContacts + data.contacts.length,
|
|
204
|
+
});
|
|
164
205
|
}
|
|
165
206
|
|
|
166
207
|
private async createContactsInMultiBatches(
|