@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.
Files changed (39) hide show
  1. package/README.md +41 -2
  2. package/dist/cjs/Contacts.js +5 -7
  3. package/dist/cjs/Contacts.js.map +1 -1
  4. package/dist/cjs/api/batchProcessApi.js +20 -0
  5. package/dist/cjs/api/batchProcessApi.js.map +1 -1
  6. package/dist/cjs/api/bulkContactsCreateApi.js +46 -129
  7. package/dist/cjs/api/bulkContactsCreateApi.js.map +1 -1
  8. package/dist/cjs/api/contactApi.js +19 -15
  9. package/dist/cjs/api/contactApi.js.map +1 -1
  10. package/dist/cjs/constants.js +1 -1
  11. package/dist/cjs/constants.js.map +1 -1
  12. package/dist/esm/Contacts.js +5 -7
  13. package/dist/esm/Contacts.js.map +1 -1
  14. package/dist/esm/api/batchProcessApi.js +16 -0
  15. package/dist/esm/api/batchProcessApi.js.map +1 -1
  16. package/dist/esm/api/bulkContactsCreateApi.js +21 -77
  17. package/dist/esm/api/bulkContactsCreateApi.js.map +1 -1
  18. package/dist/esm/api/contactApi.js +6 -4
  19. package/dist/esm/api/contactApi.js.map +1 -1
  20. package/dist/esm/constants.js +1 -1
  21. package/dist/esm/constants.js.map +1 -1
  22. package/dist/types/Contacts.d.ts.map +1 -1
  23. package/dist/types/api/batchProcessApi.d.ts +2 -0
  24. package/dist/types/api/batchProcessApi.d.ts.map +1 -1
  25. package/dist/types/api/bulkContactsCreateApi.d.ts +3 -10
  26. package/dist/types/api/bulkContactsCreateApi.d.ts.map +1 -1
  27. package/dist/types/api/contactApi.d.ts +3 -3
  28. package/dist/types/api/contactApi.d.ts.map +1 -1
  29. package/dist/types/constants.d.ts +1 -1
  30. package/dist/types/constants.d.ts.map +1 -1
  31. package/dist/types/types.d.ts +7 -0
  32. package/dist/types/types.d.ts.map +1 -1
  33. package/package.json +2 -2
  34. package/src/Contacts.ts +5 -6
  35. package/src/api/batchProcessApi.ts +15 -0
  36. package/src/api/bulkContactsCreateApi.ts +40 -97
  37. package/src/api/contactApi.ts +13 -5
  38. package/src/constants.ts +1 -1
  39. package/src/types.ts +14 -0
@@ -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(data: CreateMultipleContactsDto): Promise<void> {
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 = REQUEST_PAYLOAD_MAX_BYTES - getObjectSizeInBytes({ ...rest });
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(data: CreateMultipleContactsDto): Promise<InitCreateBatchResponse> {
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 = REQUEST_PAYLOAD_MAX_BYTES - getObjectSizeInBytes({ ...rest });
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
@@ -1,6 +1,6 @@
1
1
  export const CONTACTS_SERVICE_KEY = 'contacts-api';
2
2
 
3
- export const REQUEST_PAYLOAD_MAX_BYTES = 150000;
3
+ export const REQUEST_PAYLOAD_MAX_BYTES = 4000000;
4
4
 
5
5
  export const FAILED_REQUEST_REPEATS = 3;
6
6
 
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
+