@or-sdk/contacts 3.5.7-beta.2199.0 → 3.5.7-beta.2201.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/README.md +41 -2
- package/dist/cjs/Contacts.js +5 -7
- package/dist/cjs/Contacts.js.map +1 -1
- package/dist/cjs/api/batchProcessApi.js +20 -0
- package/dist/cjs/api/batchProcessApi.js.map +1 -1
- package/dist/cjs/api/bulkContactsCreateApi.js +46 -129
- package/dist/cjs/api/bulkContactsCreateApi.js.map +1 -1
- package/dist/cjs/api/contactApi.js +19 -15
- package/dist/cjs/api/contactApi.js.map +1 -1
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/esm/Contacts.js +5 -7
- package/dist/esm/Contacts.js.map +1 -1
- package/dist/esm/api/batchProcessApi.js +16 -0
- package/dist/esm/api/batchProcessApi.js.map +1 -1
- package/dist/esm/api/bulkContactsCreateApi.js +21 -77
- package/dist/esm/api/bulkContactsCreateApi.js.map +1 -1
- package/dist/esm/api/contactApi.js +6 -4
- package/dist/esm/api/contactApi.js.map +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/types/Contacts.d.ts.map +1 -1
- package/dist/types/api/batchProcessApi.d.ts +2 -0
- package/dist/types/api/batchProcessApi.d.ts.map +1 -1
- package/dist/types/api/bulkContactsCreateApi.d.ts +3 -10
- package/dist/types/api/bulkContactsCreateApi.d.ts.map +1 -1
- package/dist/types/api/contactApi.d.ts +3 -3
- package/dist/types/api/contactApi.d.ts.map +1 -1
- package/dist/types/constants.d.ts +1 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/types.d.ts +7 -0
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/Contacts.ts +5 -6
- package/src/api/batchProcessApi.ts +15 -0
- package/src/api/bulkContactsCreateApi.ts +40 -97
- package/src/api/contactApi.ts +13 -5
- package/src/constants.ts +1 -1
- package/src/types.ts +14 -0
package/src/api/contactApi.ts
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import { CalApiParams, List } from '@or-sdk/base';
|
|
21
21
|
import BatchProcessApi from './batchProcessApi';
|
|
22
22
|
import { getObjectSizeInBytes, chunkArrByMaxSize, debouncePromise } from '../utils';
|
|
23
|
-
import { InitCreateBatchResponse, CreateContactsBatchResults } from '../types';
|
|
23
|
+
import { InitCreateBatchResponse, CreateContactsBatchResults, BulkOptions } from '../types';
|
|
24
24
|
import ContactBookApi from './contactBookApi';
|
|
25
25
|
import { REQUEST_PAYLOAD_MAX_BYTES, CONTACTS_DELETE_MAX_AMOUNT } from '../constants';
|
|
26
26
|
import { ApiError, CreateContactsBatchError } from '../apiError';
|
|
@@ -173,9 +173,13 @@ export default class ContactApi extends BaseWithPoling {
|
|
|
173
173
|
*
|
|
174
174
|
* @see constructor of packages/contacts/src/Contacts
|
|
175
175
|
*/
|
|
176
|
-
async bulkCreateContacts(
|
|
176
|
+
async bulkCreateContacts(
|
|
177
|
+
data: CreateMultipleContactsDto,
|
|
178
|
+
options: BulkOptions = {}
|
|
179
|
+
): Promise<void> {
|
|
180
|
+
const { batchSize = REQUEST_PAYLOAD_MAX_BYTES } = options;
|
|
177
181
|
const { contacts, ...rest } = data;
|
|
178
|
-
const contactsMaxSize =
|
|
182
|
+
const contactsMaxSize = batchSize - getObjectSizeInBytes({ ...rest });
|
|
179
183
|
const contactsChunks = chunkArrByMaxSize(contacts, contactsMaxSize);
|
|
180
184
|
|
|
181
185
|
contactsChunks.length === 1
|
|
@@ -190,9 +194,13 @@ export default class ContactApi extends BaseWithPoling {
|
|
|
190
194
|
*
|
|
191
195
|
* @see batchProcessApi.trackBatchProcess
|
|
192
196
|
*/
|
|
193
|
-
async initCreateBatch(
|
|
197
|
+
async initCreateBatch(
|
|
198
|
+
data: CreateMultipleContactsDto,
|
|
199
|
+
options: BulkOptions = {}
|
|
200
|
+
): Promise<InitCreateBatchResponse> {
|
|
201
|
+
const { batchSize = REQUEST_PAYLOAD_MAX_BYTES } = options;
|
|
194
202
|
const { contacts, ...rest } = data;
|
|
195
|
-
const contactsMaxSize =
|
|
203
|
+
const contactsMaxSize = batchSize - getObjectSizeInBytes({ ...rest });
|
|
196
204
|
const contactsChunks = chunkArrByMaxSize(contacts, contactsMaxSize);
|
|
197
205
|
|
|
198
206
|
const batchProcess = await this.apiCall<BatchProcessResponseDto>({
|
package/src/constants.ts
CHANGED
package/src/types.ts
CHANGED
|
@@ -81,3 +81,17 @@ export type BulkCreateData = Omit<BulkCreateRequestDto, 'batchId' | 'batchGroupI
|
|
|
81
81
|
& { contacts: OptionalBy<BulkContactDto, 'contactKey'>[]; };
|
|
82
82
|
|
|
83
83
|
export type BatchBulkCreateData = Omit<BulkCreateRequestDto, 'batchId' | 'batchGroupId'>;
|
|
84
|
+
|
|
85
|
+
export type CreateBulkResults = {created: Record<string, string>; failed: Record<string, string>;};
|
|
86
|
+
|
|
87
|
+
export type BulkOptions = {
|
|
88
|
+
/**
|
|
89
|
+
* Sets the limit in bytes for the JSON body size to be processed by a single bulk batch.
|
|
90
|
+
* Can be used for decreasing DB server load.
|
|
91
|
+
* Default is 4000000 bytes, or approximately 4mb.
|
|
92
|
+
*
|
|
93
|
+
* @see REQUEST_PAYLOAD_MAX_BYTES in packages/contacts/src/constants.ts
|
|
94
|
+
*/
|
|
95
|
+
batchSize?: number;
|
|
96
|
+
};
|
|
97
|
+
|