@or-sdk/contacts 3.5.10 → 3.5.11
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/CHANGELOG.md +9 -0
- package/README.md +62 -6
- package/dist/cjs/api/bulkContactsCreateApi.js +42 -29
- package/dist/cjs/api/bulkContactsCreateApi.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/api/bulkContactsCreateApi.js +23 -7
- package/dist/esm/api/bulkContactsCreateApi.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/types/api/bulkContactsCreateApi.d.ts +3 -2
- package/dist/types/api/bulkContactsCreateApi.d.ts.map +1 -1
- package/dist/types/types.d.ts +2 -1
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/api/bulkContactsCreateApi.ts +58 -9
- package/src/types.ts +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.5.11](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/contacts@3.5.10...@or-sdk/contacts@3.5.11) (2024-01-09)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **contacts:** add onProgress callback to the bulkCreateContacts ([03279da](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/commit/03279da7d7813b33291622e5d9d0a35f4f93045a))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
6
15
|
## [3.5.10](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/contacts@3.5.9...@or-sdk/contacts@3.5.10) (2024-01-09)
|
|
7
16
|
|
|
8
17
|
|
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
# Installation:
|
|
2
2
|
```
|
|
3
3
|
$ npm i @or-sdk/contacts
|
|
4
4
|
```
|
|
5
5
|
|
|
6
6
|
Contacts is a composition of separate Api entities.
|
|
7
|
-
|
|
7
|
+
# Usage:
|
|
8
8
|
```typescript
|
|
9
9
|
import { Contacts } from '@or-sdk/contacts'
|
|
10
10
|
|
|
@@ -24,9 +24,9 @@ After when you initialize the Contacts Api,
|
|
|
24
24
|
various entities are available at your service with which you can work
|
|
25
25
|
(all entities presented in `api` folder )
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
# Examples
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
## Basic usage
|
|
30
30
|
Let's say you want to perform some CRUD operation on the contactBook entity
|
|
31
31
|
All you need to do, it's just refer to contactBookApi(entity)
|
|
32
32
|
```typescript
|
|
@@ -39,7 +39,7 @@ const book = contactBookApi.getContactsBook(id)
|
|
|
39
39
|
const newContactBook = contactBookApi.createContactBook(...)
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
## Bulk create
|
|
43
43
|
|
|
44
44
|
```typescript
|
|
45
45
|
import { Contacts } from '@or-sdk/contacts'
|
|
@@ -77,7 +77,11 @@ const { created, failed } = bulkCreateApi.bulkCreateContacts(
|
|
|
77
77
|
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
## Track bulk progress
|
|
81
|
+
|
|
82
|
+
### With trackBulkProgress
|
|
83
|
+
|
|
84
|
+
Pay attention, please, the `getBulkProgress` should be run in parallel with bulkCreateContacts process!
|
|
81
85
|
|
|
82
86
|
```typescript
|
|
83
87
|
const { bulkCreateApi } = new Contacts({
|
|
@@ -96,3 +100,55 @@ const {
|
|
|
96
100
|
|
|
97
101
|
```
|
|
98
102
|
|
|
103
|
+
### With onProgress callback
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
import { Contacts } from '@or-sdk/contacts'
|
|
107
|
+
|
|
108
|
+
// always use 'withKeepAliveAgents' option for bulk create
|
|
109
|
+
const { bulkCreateApi } = new Contacts({
|
|
110
|
+
contactsApiUrl: ...,
|
|
111
|
+
accountId: ...,
|
|
112
|
+
token: ...,
|
|
113
|
+
withKeepAliveAgents: true
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
const onBulkProgressCallback = ({
|
|
117
|
+
totalBatches,
|
|
118
|
+
completedBatches,
|
|
119
|
+
totalContacts,
|
|
120
|
+
completedContacts,
|
|
121
|
+
}) => {
|
|
122
|
+
// go your progress logic here; code bellow is just an example
|
|
123
|
+
console.log('totalBatches = ', totalBatches);
|
|
124
|
+
console.log('completedBatches = ', completedBatches);
|
|
125
|
+
console.log('totalContacts = ', totalContacts);
|
|
126
|
+
console.log('completedContacts = ', completedContacts);
|
|
127
|
+
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const { created, failed } = bulkCreateApi.bulkCreateContacts(
|
|
131
|
+
'some bulk name',
|
|
132
|
+
{
|
|
133
|
+
contact_book: 'some book id',
|
|
134
|
+
contacts: [...]
|
|
135
|
+
},
|
|
136
|
+
{ batchSize: 4000000 },
|
|
137
|
+
onBulkProgressCallback
|
|
138
|
+
);
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Also note that onBulkProgressCallback can be passed as the 3-rd argument, if you don't need to specify any additional bulk options:
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
const { created, failed } = bulkCreateApi.bulkCreateContacts(
|
|
145
|
+
'some bulk name',
|
|
146
|
+
{
|
|
147
|
+
contact_book: 'some book id',
|
|
148
|
+
contacts: [...]
|
|
149
|
+
},
|
|
150
|
+
{ batchSize: 4000000 },
|
|
151
|
+
onBulkProgressCallback
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
```
|
|
@@ -89,29 +89,29 @@ var BulkContactsCreateApi = (function (_super) {
|
|
|
89
89
|
_this.apiBasePath = 'bulk-create';
|
|
90
90
|
return _this;
|
|
91
91
|
}
|
|
92
|
-
BulkContactsCreateApi.prototype.bulkCreateContacts = function (bulkName, data, options) {
|
|
93
|
-
if (options === void 0) { options = {}; }
|
|
92
|
+
BulkContactsCreateApi.prototype.bulkCreateContacts = function (bulkName, data, onProgressOrOptions, options) {
|
|
94
93
|
return __awaiter(this, void 0, void 0, function () {
|
|
95
|
-
var dataWithContactKeys,
|
|
94
|
+
var _a, onProgressCallback, bulkOptions, dataWithContactKeys, _b, batchSize, results, contacts, rest, contactsMaxSize, contactsChunks, indicesOnBatchId_1;
|
|
96
95
|
var _this = this;
|
|
97
|
-
return __generator(this, function (
|
|
98
|
-
switch (
|
|
96
|
+
return __generator(this, function (_c) {
|
|
97
|
+
switch (_c.label) {
|
|
99
98
|
case 0:
|
|
99
|
+
_a = this.getBulkDefaultArgs(onProgressOrOptions, options), onProgressCallback = _a[0], bulkOptions = _a[1];
|
|
100
100
|
dataWithContactKeys = this.updateContactsWithContactKeys(data);
|
|
101
|
-
|
|
101
|
+
_b = bulkOptions.batchSize, batchSize = _b === void 0 ? constants_1.REQUEST_PAYLOAD_MAX_BYTES : _b;
|
|
102
102
|
return [4, this.indicesOff()];
|
|
103
103
|
case 1:
|
|
104
|
-
|
|
104
|
+
_c.sent();
|
|
105
105
|
results = {
|
|
106
106
|
created: {},
|
|
107
107
|
failed: {},
|
|
108
108
|
};
|
|
109
109
|
return [4, this.setBulkProgress(bulkName)];
|
|
110
110
|
case 2:
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
_c.sent();
|
|
112
|
+
_c.label = 3;
|
|
113
113
|
case 3:
|
|
114
|
-
|
|
114
|
+
_c.trys.push([3, , 10, 12]);
|
|
115
115
|
contacts = dataWithContactKeys.contacts, rest = __rest(dataWithContactKeys, ["contacts"]);
|
|
116
116
|
contactsMaxSize = batchSize - (0, utils_1.getObjectSizeInBytes)(__assign({}, rest));
|
|
117
117
|
contactsChunks = (0, utils_1.chunkArrByMaxSize)(contacts, contactsMaxSize);
|
|
@@ -122,32 +122,44 @@ var BulkContactsCreateApi = (function (_super) {
|
|
|
122
122
|
completedContacts: 0,
|
|
123
123
|
})];
|
|
124
124
|
case 4:
|
|
125
|
-
|
|
125
|
+
_c.sent();
|
|
126
126
|
if (!(contactsChunks.length === 1)) return [3, 7];
|
|
127
127
|
return [4, this.createContactsInSingleBatch(dataWithContactKeys, bulkName)];
|
|
128
128
|
case 5:
|
|
129
|
-
|
|
129
|
+
_c.sent();
|
|
130
130
|
return [4, this.increaseBulkProgress(bulkName, 1, dataWithContactKeys.contacts.length)];
|
|
131
131
|
case 6:
|
|
132
|
-
|
|
132
|
+
_c.sent();
|
|
133
133
|
return [3, 9];
|
|
134
|
-
case 7: return [4, this.createContactsInMultiBatches(contactsChunks, rest, bulkName)];
|
|
134
|
+
case 7: return [4, this.createContactsInMultiBatches(contactsChunks, rest, bulkName, onProgressCallback, bulkOptions)];
|
|
135
135
|
case 8:
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
_c.sent();
|
|
137
|
+
_c.label = 9;
|
|
138
138
|
case 9: return [3, 12];
|
|
139
139
|
case 10:
|
|
140
140
|
indicesOnBatchId_1 = (0, uuid_1.v4)();
|
|
141
141
|
this.indicesOn(indicesOnBatchId_1);
|
|
142
142
|
return [4, (0, utils_1.debouncePromise)(function () { return _this.polling(indicesOnBatchId_1); }, 3000)];
|
|
143
143
|
case 11:
|
|
144
|
-
|
|
144
|
+
_c.sent();
|
|
145
145
|
return [7];
|
|
146
146
|
case 12: return [2, results];
|
|
147
147
|
}
|
|
148
148
|
});
|
|
149
149
|
});
|
|
150
150
|
};
|
|
151
|
+
BulkContactsCreateApi.prototype.getBulkDefaultArgs = function (onProgressOrOptions, options) {
|
|
152
|
+
if (typeof onProgressOrOptions === 'object' && options !== undefined) {
|
|
153
|
+
throw new Error('Wrong arguments, type of the onProgressOrOptions should be either a function or object and options, if passed, should be of object type.');
|
|
154
|
+
}
|
|
155
|
+
if (typeof onProgressOrOptions === 'function' && typeof options === 'object') {
|
|
156
|
+
return [onProgressOrOptions, options];
|
|
157
|
+
}
|
|
158
|
+
if (typeof onProgressOrOptions === 'object') {
|
|
159
|
+
return [function () { }, onProgressOrOptions];
|
|
160
|
+
}
|
|
161
|
+
return [function () { }, {}];
|
|
162
|
+
};
|
|
151
163
|
BulkContactsCreateApi.prototype.getBulkProgress = function (bulkName) {
|
|
152
164
|
return __awaiter(this, void 0, void 0, function () {
|
|
153
165
|
return __generator(this, function (_a) {
|
|
@@ -181,21 +193,22 @@ var BulkContactsCreateApi = (function (_super) {
|
|
|
181
193
|
};
|
|
182
194
|
BulkContactsCreateApi.prototype.increaseBulkProgress = function (bulkName, batchesDelta, contactsDelta) {
|
|
183
195
|
return __awaiter(this, void 0, void 0, function () {
|
|
184
|
-
var _a, totalBatches, totalContacts, completedBatches, completedContacts;
|
|
196
|
+
var _a, totalBatches, totalContacts, completedBatches, completedContacts, progress;
|
|
185
197
|
return __generator(this, function (_b) {
|
|
186
198
|
switch (_b.label) {
|
|
187
199
|
case 0: return [4, this.getBulkProgress(bulkName)];
|
|
188
200
|
case 1:
|
|
189
201
|
_a = _b.sent(), totalBatches = _a.totalBatches, totalContacts = _a.totalContacts, completedBatches = _a.completedBatches, completedContacts = _a.completedContacts;
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
202
|
+
progress = {
|
|
203
|
+
totalBatches: totalBatches,
|
|
204
|
+
totalContacts: totalContacts,
|
|
205
|
+
completedBatches: completedBatches + batchesDelta,
|
|
206
|
+
completedContacts: completedContacts + contactsDelta,
|
|
207
|
+
};
|
|
208
|
+
return [4, this.updateBulkProgress(bulkName, progress)];
|
|
196
209
|
case 2:
|
|
197
210
|
_b.sent();
|
|
198
|
-
return [2];
|
|
211
|
+
return [2, progress];
|
|
199
212
|
}
|
|
200
213
|
});
|
|
201
214
|
});
|
|
@@ -304,10 +317,9 @@ var BulkContactsCreateApi = (function (_super) {
|
|
|
304
317
|
});
|
|
305
318
|
});
|
|
306
319
|
};
|
|
307
|
-
BulkContactsCreateApi.prototype.createContactsInMultiBatches = function (contactsBatches, data, batchGroupId, options) {
|
|
308
|
-
if (options === void 0) { options = {}; }
|
|
320
|
+
BulkContactsCreateApi.prototype.createContactsInMultiBatches = function (contactsBatches, data, batchGroupId, onProgress, options) {
|
|
309
321
|
return __awaiter(this, void 0, void 0, function () {
|
|
310
|
-
var batchPromises, promisesBatchSize, i, batch, contactsInBatches;
|
|
322
|
+
var batchPromises, promisesBatchSize, i, batch, contactsInBatches, currentProgress;
|
|
311
323
|
var _this = this;
|
|
312
324
|
return __generator(this, function (_a) {
|
|
313
325
|
switch (_a.label) {
|
|
@@ -332,7 +344,8 @@ var BulkContactsCreateApi = (function (_super) {
|
|
|
332
344
|
.reduce(function (acc, batch) { return acc + batch.length; }, 0);
|
|
333
345
|
return [4, this.increaseBulkProgress(batchGroupId, batch.length, contactsInBatches)];
|
|
334
346
|
case 3:
|
|
335
|
-
_a.sent();
|
|
347
|
+
currentProgress = _a.sent();
|
|
348
|
+
onProgress(currentProgress);
|
|
336
349
|
_a.label = 4;
|
|
337
350
|
case 4:
|
|
338
351
|
i += promisesBatchSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkContactsCreateApi.js","sourceRoot":"","sources":["../../../src/api/bulkContactsCreateApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0EAAiD;AAEjD,0CAAyD;AACzD,kCAAoF;AACpF,6BAA0B;AAS1B;IAAmD,yCAAc;IAC/D,+BACqB,OAAgD,EACzD,eAAgC;QAF5C,YAIE,kBAAM,OAAO,EAAE,eAAe,CAAC,SAChC;QAJoB,aAAO,GAAP,OAAO,CAAyC;QACzD,qBAAe,GAAf,eAAe,CAAiB;QAK3B,iBAAW,GAAG,aAAa,CAAC;;IAF7C,CAAC;
|
|
1
|
+
{"version":3,"file":"bulkContactsCreateApi.js","sourceRoot":"","sources":["../../../src/api/bulkContactsCreateApi.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAaA,+DAA6C;AAK7C,qCAA+E;AAAtE,sGAAA,cAAc,OAAA"}
|
|
@@ -29,10 +29,11 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
29
29
|
this.batchProcessApi = batchProcessApi;
|
|
30
30
|
this.apiBasePath = 'bulk-create';
|
|
31
31
|
}
|
|
32
|
-
bulkCreateContacts(bulkName, data, options
|
|
32
|
+
bulkCreateContacts(bulkName, data, onProgressOrOptions, options) {
|
|
33
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const [onProgressCallback, bulkOptions] = this.getBulkDefaultArgs(onProgressOrOptions, options);
|
|
34
35
|
const dataWithContactKeys = this.updateContactsWithContactKeys(data);
|
|
35
|
-
const { batchSize = REQUEST_PAYLOAD_MAX_BYTES } =
|
|
36
|
+
const { batchSize = REQUEST_PAYLOAD_MAX_BYTES } = bulkOptions;
|
|
36
37
|
yield this.indicesOff();
|
|
37
38
|
const results = {
|
|
38
39
|
created: {},
|
|
@@ -54,7 +55,7 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
54
55
|
yield this.increaseBulkProgress(bulkName, 1, dataWithContactKeys.contacts.length);
|
|
55
56
|
}
|
|
56
57
|
else {
|
|
57
|
-
yield this.createContactsInMultiBatches(contactsChunks, rest, bulkName);
|
|
58
|
+
yield this.createContactsInMultiBatches(contactsChunks, rest, bulkName, onProgressCallback, bulkOptions);
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
finally {
|
|
@@ -65,6 +66,18 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
65
66
|
return results;
|
|
66
67
|
});
|
|
67
68
|
}
|
|
69
|
+
getBulkDefaultArgs(onProgressOrOptions, options) {
|
|
70
|
+
if (typeof onProgressOrOptions === 'object' && options !== undefined) {
|
|
71
|
+
throw new Error('Wrong arguments, type of the onProgressOrOptions should be either a function or object and options, if passed, should be of object type.');
|
|
72
|
+
}
|
|
73
|
+
if (typeof onProgressOrOptions === 'function' && typeof options === 'object') {
|
|
74
|
+
return [onProgressOrOptions, options];
|
|
75
|
+
}
|
|
76
|
+
if (typeof onProgressOrOptions === 'object') {
|
|
77
|
+
return [() => { }, onProgressOrOptions];
|
|
78
|
+
}
|
|
79
|
+
return [() => { }, {}];
|
|
80
|
+
}
|
|
68
81
|
getBulkProgress(bulkName) {
|
|
69
82
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
83
|
return this.apiCall({
|
|
@@ -93,12 +106,14 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
93
106
|
increaseBulkProgress(bulkName, batchesDelta, contactsDelta) {
|
|
94
107
|
return __awaiter(this, void 0, void 0, function* () {
|
|
95
108
|
const { totalBatches, totalContacts, completedBatches, completedContacts, } = yield this.getBulkProgress(bulkName);
|
|
96
|
-
|
|
109
|
+
const progress = {
|
|
97
110
|
totalBatches,
|
|
98
111
|
totalContacts,
|
|
99
112
|
completedBatches: completedBatches + batchesDelta,
|
|
100
113
|
completedContacts: completedContacts + contactsDelta,
|
|
101
|
-
}
|
|
114
|
+
};
|
|
115
|
+
yield this.updateBulkProgress(bulkName, progress);
|
|
116
|
+
return progress;
|
|
102
117
|
});
|
|
103
118
|
}
|
|
104
119
|
updateContactsWithContactKeys(data) {
|
|
@@ -170,7 +185,7 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
170
185
|
yield debouncePromise(() => this.polling(batchId), 3000);
|
|
171
186
|
});
|
|
172
187
|
}
|
|
173
|
-
createContactsInMultiBatches(contactsBatches, data, batchGroupId, options
|
|
188
|
+
createContactsInMultiBatches(contactsBatches, data, batchGroupId, onProgress, options) {
|
|
174
189
|
return __awaiter(this, void 0, void 0, function* () {
|
|
175
190
|
const batchPromises = contactsBatches
|
|
176
191
|
.map((chunkContacts) => () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -183,7 +198,8 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
183
198
|
const contactsInBatches = contactsBatches
|
|
184
199
|
.slice(i, i + promisesBatchSize)
|
|
185
200
|
.reduce((acc, batch) => acc + batch.length, 0);
|
|
186
|
-
yield this.increaseBulkProgress(batchGroupId, batch.length, contactsInBatches);
|
|
201
|
+
const currentProgress = yield this.increaseBulkProgress(batchGroupId, batch.length, contactsInBatches);
|
|
202
|
+
onProgress(currentProgress);
|
|
187
203
|
}
|
|
188
204
|
});
|
|
189
205
|
}
|
|
@@ -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;AAS1B,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,cAAc;IAC/D,YACqB,OAAgD,EACzD,eAAgC;QAE1C,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAHb,YAAO,GAAP,OAAO,CAAyC;QACzD,oBAAe,GAAf,eAAe,CAAiB;QAK3B,gBAAW,GAAG,aAAa,CAAC;IAF7C,CAAC;
|
|
1
|
+
{"version":3,"file":"bulkContactsCreateApi.js","sourceRoot":"","sources":["../../../src/api/bulkContactsCreateApi.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAaA,cAAc,8BAA8B,CAAC;AAK7C,OAAO,EAAE,cAAc,EAAmC,MAAM,cAAc,CAAC"}
|
|
@@ -2,13 +2,14 @@ import { CalApiParams } from '@or-sdk/base';
|
|
|
2
2
|
import BaseWithPoling from './baseWithPolingApi';
|
|
3
3
|
import BatchProcessApi from './batchProcessApi';
|
|
4
4
|
import { BulkCreateResultsDto, BulkProgressDto } from '@onereach/types-contacts-api';
|
|
5
|
-
import { BulkCreateData, BulkOptions } from '../types';
|
|
5
|
+
import { BulkCreateData, BulkOptions, OnBulkProgress } 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(bulkName: string, data: BulkCreateData, options?: BulkOptions): Promise<BulkCreateResultsDto>;
|
|
11
|
+
bulkCreateContacts(bulkName: string, data: BulkCreateData, onProgressOrOptions?: OnBulkProgress | BulkOptions, options?: BulkOptions): Promise<BulkCreateResultsDto>;
|
|
12
|
+
private getBulkDefaultArgs;
|
|
12
13
|
getBulkProgress(bulkName: string): Promise<BulkProgressDto>;
|
|
13
14
|
setBulkProgress(bulkName: string): Promise<void>;
|
|
14
15
|
updateBulkProgress(bulkName: string, progress: BulkProgressDto): Promise<void>;
|
|
@@ -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,EAEL,oBAAoB,EACpB,eAAe,EAEhB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAuB,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
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,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5F,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;IAqChC,kBAAkB,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,mBAAmB,CAAC,EAAE,cAAc,GAAG,WAAW,EAClD,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,oBAAoB,CAAC;IA0ChC,OAAO,CAAC,kBAAkB;IAyBpB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAO3D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAQtE,oBAAoB;IAwBlC,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;YAkB3B,4BAA4B;CA2B3C"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Token } from '@or-sdk/base';
|
|
2
|
-
import { BatchProcessStatus, BulkContactDto, BulkCreateRequestDto, ContactBookParamsDto, CreateFieldSchemaDto, DeleteContactMultiParamsDto, ListApiParams, OrderParams } from '@onereach/types-contacts-api';
|
|
2
|
+
import { BatchProcessStatus, BulkContactDto, BulkCreateRequestDto, ContactBookParamsDto, CreateFieldSchemaDto, DeleteContactMultiParamsDto, ListApiParams, OrderParams, BulkProgressDto } from '@onereach/types-contacts-api';
|
|
3
3
|
import { OrderOptions, PaginationOptions } from '@or-sdk/base';
|
|
4
4
|
export * from '@onereach/types-contacts-api';
|
|
5
5
|
declare type OptionalBy<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
@@ -48,4 +48,5 @@ export declare type BulkOptions = {
|
|
|
48
48
|
batchSize?: number;
|
|
49
49
|
parallelBatchesAmount?: number;
|
|
50
50
|
};
|
|
51
|
+
export declare type OnBulkProgress = (progress: BulkProgressDto) => void;
|
|
51
52
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,aAAa,EACb,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,aAAa,EACb,WAAW,EACX,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,cAAc,8BAA8B,CAAC;AAE7C,aAAK,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE/E,oBAAY,cAAc,GAAG;IAI3B,KAAK,EAAE,KAAK,CAAC;IAKb,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;IAOnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAM9B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB,CAAC,oBAAoB,CAAC;IAChF,aAAa,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC;CACvD;AAED,oBAAY,iBAAiB,CAAC,CAAC,SAAS,aAAa,GAAG,WAAW,IACjE,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAAC;AAEjF,oBAAY,0BAA0B,GAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,kBAAkB,GAAG,UAAU,CAAC,2BAA2B,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;CAAC,CAAC;AAEpG,oBAAY,yBAAyB,GAAG;IACtC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,oBAAY,uBAAuB,GAAG,oBAAoB,GAAG;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CAAC,CAAC;AAErF,oBAAY,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC,GAC9F;IAAE,QAAQ,EAAE,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,CAAC;CAAE,CAAC;AAE5D,oBAAY,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,cAAc,CAAC,CAAC;AAEzF,oBAAY,iBAAiB,GAAG;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAAC,CAAC;AAEnG,oBAAY,WAAW,GAAG;IAQxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,oBAAY,cAAc,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.5.
|
|
2
|
+
"version": "3.5.11",
|
|
3
3
|
"name": "@or-sdk/contacts",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "561e49bce53c17bd1f30c4a58190ffea8f7d6706"
|
|
40
40
|
}
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
BulkProgressDto,
|
|
11
11
|
CreateBulkResponseDto,
|
|
12
12
|
} from '@onereach/types-contacts-api';
|
|
13
|
-
import { BatchBulkCreateData, BulkCreateData, BulkOptions } from '../types';
|
|
13
|
+
import { BatchBulkCreateData, BulkCreateData, BulkOptions, OnBulkProgress } from '../types';
|
|
14
14
|
|
|
15
15
|
export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
16
16
|
constructor(
|
|
@@ -48,17 +48,24 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
48
48
|
* In the case if contactKey is not defined, it it will be automatically set to the index (as string)
|
|
49
49
|
* of contact.
|
|
50
50
|
*
|
|
51
|
+
* If it is required to track bulk progress:
|
|
52
|
+
* - either with <code>getBulkProgress</code> running in parallel process with the same <code>bulkName</code>
|
|
53
|
+
* - or with the <code>onProgress</code> callback
|
|
54
|
+
*
|
|
51
55
|
* @param bulkName unique name for bulk operation to be used for tracking results
|
|
52
56
|
* @param data contacts data to be inserted
|
|
57
|
+
* @param onProgressOrOptions some bulk operation options for tuning DB server workload (use very carefully!!!)
|
|
53
58
|
* @param options some bulk operation options for tuning DB server workload (use very carefully!!!)
|
|
54
59
|
*/
|
|
55
60
|
public async bulkCreateContacts(
|
|
56
61
|
bulkName: string,
|
|
57
62
|
data: BulkCreateData,
|
|
58
|
-
|
|
63
|
+
onProgressOrOptions?: OnBulkProgress | BulkOptions,
|
|
64
|
+
options?: BulkOptions,
|
|
59
65
|
): Promise<BulkCreateResultsDto> {
|
|
66
|
+
const [onProgressCallback, bulkOptions] = this.getBulkDefaultArgs(onProgressOrOptions, options);
|
|
60
67
|
const dataWithContactKeys = this.updateContactsWithContactKeys(data);
|
|
61
|
-
const { batchSize = REQUEST_PAYLOAD_MAX_BYTES } =
|
|
68
|
+
const { batchSize = REQUEST_PAYLOAD_MAX_BYTES } = bulkOptions;
|
|
62
69
|
await this.indicesOff();
|
|
63
70
|
const results: BulkCreateResultsDto = {
|
|
64
71
|
created: {},
|
|
@@ -80,7 +87,13 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
80
87
|
await this.createContactsInSingleBatch(dataWithContactKeys as BatchBulkCreateData, bulkName);
|
|
81
88
|
await this.increaseBulkProgress(bulkName, 1, dataWithContactKeys.contacts.length);
|
|
82
89
|
} else {
|
|
83
|
-
await this.createContactsInMultiBatches(
|
|
90
|
+
await this.createContactsInMultiBatches(
|
|
91
|
+
contactsChunks as BulkContactDto[][],
|
|
92
|
+
rest,
|
|
93
|
+
bulkName,
|
|
94
|
+
onProgressCallback,
|
|
95
|
+
bulkOptions,
|
|
96
|
+
);
|
|
84
97
|
}
|
|
85
98
|
} finally {
|
|
86
99
|
const indicesOnBatchId = v4();
|
|
@@ -91,6 +104,31 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
91
104
|
return results;
|
|
92
105
|
}
|
|
93
106
|
|
|
107
|
+
private getBulkDefaultArgs(
|
|
108
|
+
onProgressOrOptions?: OnBulkProgress | BulkOptions,
|
|
109
|
+
options?: BulkOptions
|
|
110
|
+
): [OnBulkProgress, BulkOptions] {
|
|
111
|
+
if (typeof onProgressOrOptions === 'object' && options !== undefined) {
|
|
112
|
+
// eslint-disable-next-line max-len
|
|
113
|
+
throw new Error('Wrong arguments, type of the onProgressOrOptions should be either a function or object and options, if passed, should be of object type.');
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (typeof onProgressOrOptions === 'function' && typeof options === 'object') {
|
|
117
|
+
return [onProgressOrOptions, options];
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (typeof onProgressOrOptions === 'object') {
|
|
121
|
+
return [() => {}, onProgressOrOptions];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return [() => {}, {}];
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Returns particular bulk progress.
|
|
129
|
+
* Must be executed in parallel to the <code>bulkCreateContacts</code> process.
|
|
130
|
+
* @param bulkName
|
|
131
|
+
*/
|
|
94
132
|
async getBulkProgress(bulkName: string): Promise<BulkProgressDto> {
|
|
95
133
|
return this.apiCall({
|
|
96
134
|
method: 'GET',
|
|
@@ -113,7 +151,11 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
113
151
|
});
|
|
114
152
|
}
|
|
115
153
|
|
|
116
|
-
private async increaseBulkProgress(
|
|
154
|
+
private async increaseBulkProgress(
|
|
155
|
+
bulkName: string,
|
|
156
|
+
batchesDelta: number,
|
|
157
|
+
contactsDelta: number
|
|
158
|
+
): Promise<BulkProgressDto> {
|
|
117
159
|
const {
|
|
118
160
|
totalBatches,
|
|
119
161
|
totalContacts,
|
|
@@ -121,12 +163,16 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
121
163
|
completedContacts,
|
|
122
164
|
} = await this.getBulkProgress(bulkName);
|
|
123
165
|
|
|
124
|
-
|
|
166
|
+
const progress = {
|
|
125
167
|
totalBatches,
|
|
126
168
|
totalContacts,
|
|
127
169
|
completedBatches: completedBatches + batchesDelta,
|
|
128
170
|
completedContacts: completedContacts + contactsDelta,
|
|
129
|
-
}
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
await this.updateBulkProgress(bulkName, progress);
|
|
174
|
+
|
|
175
|
+
return progress;
|
|
130
176
|
}
|
|
131
177
|
|
|
132
178
|
private updateContactsWithContactKeys(data: BulkCreateData): BatchBulkCreateData {
|
|
@@ -221,7 +267,8 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
221
267
|
contactsBatches: BulkContactDto[][],
|
|
222
268
|
data: Omit<BulkCreateData, 'contacts'>,
|
|
223
269
|
batchGroupId: string,
|
|
224
|
-
|
|
270
|
+
onProgress: OnBulkProgress,
|
|
271
|
+
options: BulkOptions,
|
|
225
272
|
): Promise<void> {
|
|
226
273
|
const batchPromises = contactsBatches
|
|
227
274
|
.map((chunkContacts) => async () => this.createContactsInSingleBatch({
|
|
@@ -237,7 +284,9 @@ export default class BulkContactsCreateApi extends BaseWithPoling {
|
|
|
237
284
|
const contactsInBatches = contactsBatches
|
|
238
285
|
.slice(i, i + promisesBatchSize)
|
|
239
286
|
.reduce((acc, batch) => acc + batch.length, 0);
|
|
240
|
-
await this.increaseBulkProgress(batchGroupId, batch.length, contactsInBatches);
|
|
287
|
+
const currentProgress = await this.increaseBulkProgress(batchGroupId, batch.length, contactsInBatches);
|
|
288
|
+
|
|
289
|
+
onProgress(currentProgress);
|
|
241
290
|
}
|
|
242
291
|
}
|
|
243
292
|
|
package/src/types.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
DeleteContactMultiParamsDto,
|
|
9
9
|
ListApiParams,
|
|
10
10
|
OrderParams,
|
|
11
|
+
BulkProgressDto,
|
|
11
12
|
} from '@onereach/types-contacts-api';
|
|
12
13
|
import { OrderOptions, PaginationOptions } from '@or-sdk/base';
|
|
13
14
|
export * from '@onereach/types-contacts-api';
|
|
@@ -100,3 +101,5 @@ export type BulkOptions = {
|
|
|
100
101
|
parallelBatchesAmount?: number;
|
|
101
102
|
};
|
|
102
103
|
|
|
104
|
+
export type OnBulkProgress = (progress: BulkProgressDto) => void;
|
|
105
|
+
|