@or-sdk/contacts 3.0.14-beta.1572.0 → 3.1.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/CHANGELOG.md +9 -0
- package/dist/cjs/api/contactApi.js +47 -22
- package/dist/cjs/api/contactApi.js.map +1 -1
- package/dist/cjs/constants.js +2 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/esm/api/contactApi.js +30 -15
- package/dist/esm/api/contactApi.js.map +1 -1
- package/dist/esm/constants.js +1 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/types/api/contactApi.d.ts +3 -1
- package/dist/types/api/contactApi.d.ts.map +1 -1
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/api/contactApi.ts +34 -20
- package/src/constants.ts +8 -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.1.0](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/contacts@3.0.13...@or-sdk/contacts@3.1.0) (2023-07-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **contacts:** deleteMulti deletes contacts in batch with poling if contacts amount > 50 ([72764cd](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/commit/72764cd8e9404fb36b541c7ce699ab34ce8ab79c))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
6
15
|
## [3.0.13](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/contacts@3.0.12...@or-sdk/contacts@3.0.13) (2023-06-19)
|
|
7
16
|
|
|
8
17
|
|
|
@@ -92,11 +92,11 @@ var ContactApi = (function (_super) {
|
|
|
92
92
|
params: params,
|
|
93
93
|
});
|
|
94
94
|
};
|
|
95
|
-
ContactApi.prototype.listContact = function (
|
|
95
|
+
ContactApi.prototype.listContact = function (params) {
|
|
96
96
|
return this.apiCall({
|
|
97
97
|
method: 'POST',
|
|
98
98
|
route: "".concat(this.apiBasePath, "/list"),
|
|
99
|
-
data:
|
|
99
|
+
data: __assign({}, (0, utils_1.adaptListParams)(params)),
|
|
100
100
|
});
|
|
101
101
|
};
|
|
102
102
|
ContactApi.prototype.updateContact = function (id, data) {
|
|
@@ -114,6 +114,9 @@ var ContactApi = (function (_super) {
|
|
|
114
114
|
});
|
|
115
115
|
};
|
|
116
116
|
ContactApi.prototype.deleteMulti = function (data) {
|
|
117
|
+
if ((Array.isArray(data.ids) && data.ids.length > constants_1.CONTACTS_DELETE_MAX_AMOUNT) || data.all) {
|
|
118
|
+
return this.bulkDeleteContacts(data);
|
|
119
|
+
}
|
|
117
120
|
return this.apiCall({
|
|
118
121
|
method: 'DELETE',
|
|
119
122
|
route: "".concat(this.apiBasePath),
|
|
@@ -195,10 +198,29 @@ var ContactApi = (function (_super) {
|
|
|
195
198
|
});
|
|
196
199
|
});
|
|
197
200
|
};
|
|
201
|
+
ContactApi.prototype.bulkDeleteContacts = function (data) {
|
|
202
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
203
|
+
var batchProcess;
|
|
204
|
+
return __generator(this, function (_a) {
|
|
205
|
+
switch (_a.label) {
|
|
206
|
+
case 0: return [4, this.apiCall({
|
|
207
|
+
method: 'DELETE',
|
|
208
|
+
route: "".concat(this.apiBasePath, "/bulk"),
|
|
209
|
+
data: data,
|
|
210
|
+
})];
|
|
211
|
+
case 1:
|
|
212
|
+
batchProcess = _a.sent();
|
|
213
|
+
return [4, this.polling(batchProcess.id)];
|
|
214
|
+
case 2:
|
|
215
|
+
_a.sent();
|
|
216
|
+
return [2];
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
};
|
|
198
221
|
ContactApi.prototype.createContactsInSingleBatch = function (data) {
|
|
199
222
|
return __awaiter(this, void 0, void 0, function () {
|
|
200
|
-
var batchProcess,
|
|
201
|
-
var _this = this;
|
|
223
|
+
var batchProcess, batchProcessResult, contactIds, importedContacts;
|
|
202
224
|
return __generator(this, function (_a) {
|
|
203
225
|
switch (_a.label) {
|
|
204
226
|
case 0: return [4, this.apiCall({
|
|
@@ -208,24 +230,7 @@ var ContactApi = (function (_super) {
|
|
|
208
230
|
})];
|
|
209
231
|
case 1:
|
|
210
232
|
batchProcess = _a.sent();
|
|
211
|
-
|
|
212
|
-
var batchProcessState;
|
|
213
|
-
return __generator(this, function (_a) {
|
|
214
|
-
switch (_a.label) {
|
|
215
|
-
case 0: return [4, this.batchProcessApi.getBatchProcess(batchId).catch(function (e) {
|
|
216
|
-
repeats = repeats || 0;
|
|
217
|
-
if (repeats < constants_1.FAILED_REQUEST_REPEATS) {
|
|
218
|
-
return polling(batchId, repeats + 1);
|
|
219
|
-
}
|
|
220
|
-
throw new Error(e);
|
|
221
|
-
})];
|
|
222
|
-
case 1:
|
|
223
|
-
batchProcessState = _a.sent();
|
|
224
|
-
return [2, batchProcessState.status === 'pending' ? polling(batchId) : batchProcessState];
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
}); };
|
|
228
|
-
return [4, polling(batchProcess.id)];
|
|
233
|
+
return [4, this.polling(batchProcess.id)];
|
|
229
234
|
case 2:
|
|
230
235
|
batchProcessResult = _a.sent();
|
|
231
236
|
contactIds = batchProcessResult.results.flatMap(function (i) { return JSON.parse(i); });
|
|
@@ -268,6 +273,26 @@ var ContactApi = (function (_super) {
|
|
|
268
273
|
});
|
|
269
274
|
});
|
|
270
275
|
};
|
|
276
|
+
ContactApi.prototype.polling = function (batchId, repeats) {
|
|
277
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
278
|
+
var batchProcessState;
|
|
279
|
+
var _this = this;
|
|
280
|
+
return __generator(this, function (_a) {
|
|
281
|
+
switch (_a.label) {
|
|
282
|
+
case 0: return [4, this.batchProcessApi.getBatchProcess(batchId).catch(function (e) {
|
|
283
|
+
repeats = repeats || 0;
|
|
284
|
+
if (repeats < constants_1.FAILED_REQUEST_REPEATS) {
|
|
285
|
+
return _this.polling(batchId, repeats + 1);
|
|
286
|
+
}
|
|
287
|
+
throw new Error(e);
|
|
288
|
+
})];
|
|
289
|
+
case 1:
|
|
290
|
+
batchProcessState = _a.sent();
|
|
291
|
+
return [2, batchProcessState.status === 'pending' ? this.polling(batchId) : batchProcessState];
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
});
|
|
295
|
+
};
|
|
271
296
|
return ContactApi;
|
|
272
297
|
}(baseApi_1.BaseApi));
|
|
273
298
|
exports.default = ContactApi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contactApi.js","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,qCAAoC;AAGpC,
|
|
1
|
+
{"version":3,"file":"contactApi.js","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/constants.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FAILED_REQUEST_REPEATS = exports.REQUEST_PAYLOAD_MAX_BYTES = exports.CONTACTS_SERVICE_KEY = void 0;
|
|
3
|
+
exports.CONTACTS_DELETE_MAX_AMOUNT = exports.FAILED_REQUEST_REPEATS = exports.REQUEST_PAYLOAD_MAX_BYTES = exports.CONTACTS_SERVICE_KEY = void 0;
|
|
4
4
|
exports.CONTACTS_SERVICE_KEY = 'contacts-api';
|
|
5
5
|
exports.REQUEST_PAYLOAD_MAX_BYTES = 128000;
|
|
6
6
|
exports.FAILED_REQUEST_REPEATS = 3;
|
|
7
|
+
exports.CONTACTS_DELETE_MAX_AMOUNT = 5;
|
|
7
8
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,cAAc,CAAC;AAEtC,QAAA,yBAAyB,GAAG,MAAM,CAAC;AAEnC,QAAA,sBAAsB,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,cAAc,CAAC;AAEtC,QAAA,yBAAyB,GAAG,MAAM,CAAC;AAEnC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAQ3B,QAAA,0BAA0B,GAAG,CAAC,CAAC"}
|
|
@@ -19,8 +19,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
19
19
|
return t;
|
|
20
20
|
};
|
|
21
21
|
import { BaseApi } from './baseApi';
|
|
22
|
-
import { getObjectSizeInBytes, chunkArrByMaxSize } from '../utils';
|
|
23
|
-
import { REQUEST_PAYLOAD_MAX_BYTES, FAILED_REQUEST_REPEATS } from '../constants';
|
|
22
|
+
import { adaptListParams, getObjectSizeInBytes, chunkArrByMaxSize } from '../utils';
|
|
23
|
+
import { REQUEST_PAYLOAD_MAX_BYTES, FAILED_REQUEST_REPEATS, CONTACTS_DELETE_MAX_AMOUNT } from '../constants';
|
|
24
24
|
export default class ContactApi extends BaseApi {
|
|
25
25
|
constructor(apiCall, batchProcessApi) {
|
|
26
26
|
super(apiCall);
|
|
@@ -35,11 +35,11 @@ export default class ContactApi extends BaseApi {
|
|
|
35
35
|
params,
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
listContact(
|
|
38
|
+
listContact(params) {
|
|
39
39
|
return this.apiCall({
|
|
40
40
|
method: 'POST',
|
|
41
41
|
route: `${this.apiBasePath}/list`,
|
|
42
|
-
data,
|
|
42
|
+
data: Object.assign({}, adaptListParams(params)),
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
updateContact(id, data) {
|
|
@@ -57,6 +57,9 @@ export default class ContactApi extends BaseApi {
|
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
deleteMulti(data) {
|
|
60
|
+
if ((Array.isArray(data.ids) && data.ids.length > CONTACTS_DELETE_MAX_AMOUNT) || data.all) {
|
|
61
|
+
return this.bulkDeleteContacts(data);
|
|
62
|
+
}
|
|
60
63
|
return this.apiCall({
|
|
61
64
|
method: 'DELETE',
|
|
62
65
|
route: `${this.apiBasePath}`,
|
|
@@ -127,6 +130,16 @@ export default class ContactApi extends BaseApi {
|
|
|
127
130
|
return contacts;
|
|
128
131
|
});
|
|
129
132
|
}
|
|
133
|
+
bulkDeleteContacts(data) {
|
|
134
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
+
const batchProcess = yield this.apiCall({
|
|
136
|
+
method: 'DELETE',
|
|
137
|
+
route: `${this.apiBasePath}/bulk`,
|
|
138
|
+
data,
|
|
139
|
+
});
|
|
140
|
+
yield this.polling(batchProcess.id);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
130
143
|
createContactsInSingleBatch(data) {
|
|
131
144
|
return __awaiter(this, void 0, void 0, function* () {
|
|
132
145
|
const batchProcess = yield this.apiCall({
|
|
@@ -134,17 +147,7 @@ export default class ContactApi extends BaseApi {
|
|
|
134
147
|
route: `${this.apiBasePath}/bulk`,
|
|
135
148
|
data,
|
|
136
149
|
});
|
|
137
|
-
const
|
|
138
|
-
const batchProcessState = yield this.batchProcessApi.getBatchProcess(batchId).catch((e) => {
|
|
139
|
-
repeats = repeats || 0;
|
|
140
|
-
if (repeats < FAILED_REQUEST_REPEATS) {
|
|
141
|
-
return polling(batchId, repeats + 1);
|
|
142
|
-
}
|
|
143
|
-
throw new Error(e);
|
|
144
|
-
});
|
|
145
|
-
return batchProcessState.status === 'pending' ? polling(batchId) : batchProcessState;
|
|
146
|
-
});
|
|
147
|
-
const batchProcessResult = yield polling(batchProcess.id);
|
|
150
|
+
const batchProcessResult = yield this.polling(batchProcess.id);
|
|
148
151
|
const contactIds = batchProcessResult.results.flatMap(i => JSON.parse(i));
|
|
149
152
|
const importedContacts = yield this.getSafelyContactsList(contactIds, data.contact_book);
|
|
150
153
|
return importedContacts.items;
|
|
@@ -163,5 +166,17 @@ export default class ContactApi extends BaseApi {
|
|
|
163
166
|
return results;
|
|
164
167
|
});
|
|
165
168
|
}
|
|
169
|
+
polling(batchId, repeats) {
|
|
170
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
171
|
+
const batchProcessState = yield this.batchProcessApi.getBatchProcess(batchId).catch((e) => {
|
|
172
|
+
repeats = repeats || 0;
|
|
173
|
+
if (repeats < FAILED_REQUEST_REPEATS) {
|
|
174
|
+
return this.polling(batchId, repeats + 1);
|
|
175
|
+
}
|
|
176
|
+
throw new Error(e);
|
|
177
|
+
});
|
|
178
|
+
return batchProcessState.status === 'pending' ? this.polling(batchId) : batchProcessState;
|
|
179
|
+
});
|
|
180
|
+
}
|
|
166
181
|
}
|
|
167
182
|
//# sourceMappingURL=contactApi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contactApi.js","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"contactApi.js","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAQxC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC"}
|
|
@@ -9,7 +9,7 @@ export default class ContactApi extends BaseApi {
|
|
|
9
9
|
constructor(apiCall: <T>(params: CalApiParams) => Promise<T>, batchProcessApi: BatchProcessApi);
|
|
10
10
|
private readonly apiBasePath;
|
|
11
11
|
getContact(id: string, params: ContactParamsDto): Promise<ContactResponseDto>;
|
|
12
|
-
listContact(
|
|
12
|
+
listContact(params: ContactSearchParams): Promise<List<ContactResponseDto>>;
|
|
13
13
|
updateContact(id: string, data: UpdateContactDto): Promise<ContactResponseDto>;
|
|
14
14
|
deleteContact(id: string, data: DeleteContactParamsDto): Promise<void>;
|
|
15
15
|
deleteMulti(data: DeleteContactMultiParamsDto): Promise<void>;
|
|
@@ -21,7 +21,9 @@ export default class ContactApi extends BaseApi {
|
|
|
21
21
|
unlinkContact(id: string, data: UnlinkContactParamsDto): Promise<void>;
|
|
22
22
|
unlinkContactsMulti(data: UnlinkContactMultiParamsDto): Promise<void>;
|
|
23
23
|
private getSafelyContactsList;
|
|
24
|
+
private bulkDeleteContacts;
|
|
24
25
|
private createContactsInSingleBatch;
|
|
25
26
|
private createContactsInMultiBatches;
|
|
27
|
+
private polling;
|
|
26
28
|
}
|
|
27
29
|
//# sourceMappingURL=contactApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contactApi.d.ts","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAEhB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,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;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI/C,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,
|
|
1
|
+
{"version":3,"file":"contactApi.d.ts","sourceRoot":"","sources":["../../../src/api/contactApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAEhB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,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;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI/C,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,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAe3E,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;YAY3B,4BAA4B;YAoB5B,OAAO;CAWtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAEhD,eAAO,MAAM,sBAAsB,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAEhD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAQxC,eAAO,MAAM,0BAA0B,IAAI,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.
|
|
2
|
+
"version": "3.1.0",
|
|
3
3
|
"name": "@or-sdk/contacts",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"access": "public"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@onereach/types-contacts-api": "
|
|
27
|
+
"@onereach/types-contacts-api": "3.0.5",
|
|
28
28
|
"@or-sdk/base": "^0.28.3"
|
|
29
|
-
}
|
|
29
|
+
},
|
|
30
|
+
"gitHead": "20c7f7c4652c1ba9bba68481ec2785f5e4adf6ca"
|
|
30
31
|
}
|
package/src/api/contactApi.ts
CHANGED
|
@@ -18,8 +18,8 @@ import { CalApiParams, List } from '@or-sdk/base';
|
|
|
18
18
|
import { BaseApi } from './baseApi';
|
|
19
19
|
import BatchProcessApi from './batchProcessApi';
|
|
20
20
|
import { ContactSearchParams } from '../types';
|
|
21
|
-
import { getObjectSizeInBytes, chunkArrByMaxSize } from '../utils';
|
|
22
|
-
import { REQUEST_PAYLOAD_MAX_BYTES, FAILED_REQUEST_REPEATS } from '../constants';
|
|
21
|
+
import { adaptListParams, getObjectSizeInBytes, chunkArrByMaxSize } from '../utils';
|
|
22
|
+
import { REQUEST_PAYLOAD_MAX_BYTES, FAILED_REQUEST_REPEATS, CONTACTS_DELETE_MAX_AMOUNT } from '../constants';
|
|
23
23
|
|
|
24
24
|
export default class ContactApi extends BaseApi {
|
|
25
25
|
constructor(
|
|
@@ -48,11 +48,13 @@ export default class ContactApi extends BaseApi {
|
|
|
48
48
|
* @description Get list of Contacts for specific contactBook
|
|
49
49
|
* @param params
|
|
50
50
|
*/
|
|
51
|
-
listContact(
|
|
51
|
+
listContact(params: ContactSearchParams): Promise<List<ContactResponseDto>> {
|
|
52
52
|
return this.apiCall({
|
|
53
53
|
method: 'POST',
|
|
54
54
|
route: `${this.apiBasePath}/list`,
|
|
55
|
-
data
|
|
55
|
+
data: {
|
|
56
|
+
...adaptListParams(params),
|
|
57
|
+
},
|
|
56
58
|
});
|
|
57
59
|
}
|
|
58
60
|
|
|
@@ -88,6 +90,9 @@ export default class ContactApi extends BaseApi {
|
|
|
88
90
|
* @param data
|
|
89
91
|
*/
|
|
90
92
|
deleteMulti(data: DeleteContactMultiParamsDto): Promise<void> {
|
|
93
|
+
if ((Array.isArray(data.ids) && data.ids.length > CONTACTS_DELETE_MAX_AMOUNT) || data.all) {
|
|
94
|
+
return this.bulkDeleteContacts(data);
|
|
95
|
+
}
|
|
91
96
|
return this.apiCall({
|
|
92
97
|
method: 'DELETE',
|
|
93
98
|
route: `${this.apiBasePath}`,
|
|
@@ -202,28 +207,22 @@ export default class ContactApi extends BaseApi {
|
|
|
202
207
|
return contacts;
|
|
203
208
|
}
|
|
204
209
|
|
|
210
|
+
private async bulkDeleteContacts(data: DeleteContactMultiParamsDto): Promise<void> {
|
|
211
|
+
const batchProcess = await this.apiCall<BatchProcessResponseDto>({
|
|
212
|
+
method: 'DELETE',
|
|
213
|
+
route: `${this.apiBasePath}/bulk`,
|
|
214
|
+
data,
|
|
215
|
+
});
|
|
216
|
+
await this.polling(batchProcess.id);
|
|
217
|
+
}
|
|
218
|
+
|
|
205
219
|
private async createContactsInSingleBatch(data: CreateMultipleContactsDto): Promise<ContactResponseDto[]> {
|
|
206
220
|
const batchProcess = await this.apiCall<BatchProcessResponseDto>({
|
|
207
221
|
method: 'POST',
|
|
208
222
|
route: `${this.apiBasePath}/bulk`,
|
|
209
223
|
data,
|
|
210
224
|
});
|
|
211
|
-
|
|
212
|
-
// make a new request if the previous one is complete
|
|
213
|
-
const polling = async (batchId: string, repeats?: number): Promise<BatchProcessResponseDto> => {
|
|
214
|
-
const batchProcessState = await this.batchProcessApi.getBatchProcess(batchId).catch((e) => {
|
|
215
|
-
repeats = repeats || 0;
|
|
216
|
-
if (repeats < FAILED_REQUEST_REPEATS) {
|
|
217
|
-
return polling(batchId, repeats + 1);
|
|
218
|
-
}
|
|
219
|
-
throw new Error(e);
|
|
220
|
-
});
|
|
221
|
-
// value 'pending' is used because of https://onereach.atlassian.net/browse/CU-562
|
|
222
|
-
return batchProcessState.status === 'pending' ? polling(batchId) : batchProcessState;
|
|
223
|
-
};
|
|
224
|
-
|
|
225
|
-
const batchProcessResult = await polling(batchProcess.id);
|
|
226
|
-
|
|
225
|
+
const batchProcessResult = await this.polling(batchProcess.id);
|
|
227
226
|
const contactIds = batchProcessResult.results.flatMap<string>(i => JSON.parse(i));
|
|
228
227
|
const importedContacts = await this.getSafelyContactsList(contactIds, data.contact_book);
|
|
229
228
|
return importedContacts.items;
|
|
@@ -245,4 +244,19 @@ export default class ContactApi extends BaseApi {
|
|
|
245
244
|
}
|
|
246
245
|
return results;
|
|
247
246
|
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Pols specific batch process until status of it isn't turned from 'pending to something else.
|
|
250
|
+
*/
|
|
251
|
+
private async polling(batchId: string, repeats?: number): Promise<BatchProcessResponseDto> {
|
|
252
|
+
const batchProcessState = await this.batchProcessApi.getBatchProcess(batchId).catch((e) => {
|
|
253
|
+
repeats = repeats || 0;
|
|
254
|
+
if (repeats < FAILED_REQUEST_REPEATS) {
|
|
255
|
+
return this.polling(batchId, repeats + 1);
|
|
256
|
+
}
|
|
257
|
+
throw new Error(e);
|
|
258
|
+
});
|
|
259
|
+
// value 'pending' is used because of https://onereach.atlassian.net/browse/CU-562
|
|
260
|
+
return batchProcessState.status === 'pending' ? this.polling(batchId) : batchProcessState;
|
|
261
|
+
}
|
|
248
262
|
}
|
package/src/constants.ts
CHANGED
|
@@ -3,3 +3,11 @@ export const CONTACTS_SERVICE_KEY = 'contacts-api';
|
|
|
3
3
|
export const REQUEST_PAYLOAD_MAX_BYTES = 128000;
|
|
4
4
|
|
|
5
5
|
export const FAILED_REQUEST_REPEATS = 3;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 5 selected experimentally
|
|
9
|
+
* Since contacts deleting assumes cascading on related field values and deleting
|
|
10
|
+
* relations in contact_book_contact table, it results in huge amount of queries
|
|
11
|
+
* which sent simultaneously might kill connection to the DB.
|
|
12
|
+
*/
|
|
13
|
+
export const CONTACTS_DELETE_MAX_AMOUNT = 5;
|