@or-sdk/contacts 3.5.5-beta.2129.0 → 3.5.5-beta.2131.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/Contacts.js +14 -0
- package/dist/cjs/Contacts.js.map +1 -1
- package/dist/cjs/api/baseWithPolingApi.js +106 -0
- package/dist/cjs/api/baseWithPolingApi.js.map +1 -0
- package/dist/cjs/api/batchProcessApi.js +10 -0
- package/dist/cjs/api/batchProcessApi.js.map +1 -1
- package/dist/cjs/api/bulkContactsCreateApi.js +197 -0
- package/dist/cjs/api/bulkContactsCreateApi.js.map +1 -0
- package/dist/cjs/api/contactApi.js +6 -40
- package/dist/cjs/api/contactApi.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/Contacts.js +14 -0
- package/dist/esm/Contacts.js.map +1 -1
- package/dist/esm/api/baseWithPolingApi.js +47 -0
- package/dist/esm/api/baseWithPolingApi.js.map +1 -0
- package/dist/esm/api/batchProcessApi.js +9 -1
- package/dist/esm/api/batchProcessApi.js.map +1 -1
- package/dist/esm/api/bulkContactsCreateApi.js +92 -0
- package/dist/esm/api/bulkContactsCreateApi.js.map +1 -0
- package/dist/esm/api/contactApi.js +4 -30
- package/dist/esm/api/contactApi.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/types/Contacts.d.ts +4 -0
- package/dist/types/Contacts.d.ts.map +1 -1
- package/dist/types/api/baseWithPolingApi.d.ts +11 -0
- package/dist/types/api/baseWithPolingApi.d.ts.map +1 -0
- package/dist/types/api/batchProcessApi.d.ts +1 -0
- package/dist/types/api/batchProcessApi.d.ts.map +1 -1
- package/dist/types/api/bulkContactsCreateApi.d.ts +15 -0
- package/dist/types/api/bulkContactsCreateApi.d.ts.map +1 -0
- package/dist/types/api/contactApi.d.ts +3 -4
- package/dist/types/api/contactApi.d.ts.map +1 -1
- package/dist/types/types.d.ts +10 -1
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/Contacts.ts +17 -0
- package/src/api/baseWithPolingApi.ts +51 -0
- package/src/api/batchProcessApi.ts +11 -1
- package/src/api/bulkContactsCreateApi.ts +110 -0
- package/src/api/contactApi.ts +5 -40
- package/src/types.ts +16 -0
package/src/api/contactApi.ts
CHANGED
|
@@ -2,7 +2,6 @@ import { v4 } from 'uuid';
|
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
BatchProcessResponseDto,
|
|
5
|
-
BatchProcessStatus,
|
|
6
5
|
ContactParamsDto,
|
|
7
6
|
ContactRequestDto,
|
|
8
7
|
ContactResponseDto,
|
|
@@ -19,22 +18,22 @@ import {
|
|
|
19
18
|
UpdateContactDto,
|
|
20
19
|
} from '@onereach/types-contacts-api';
|
|
21
20
|
import { CalApiParams, List } from '@or-sdk/base';
|
|
22
|
-
import { BaseApi } from './baseApi';
|
|
23
21
|
import BatchProcessApi from './batchProcessApi';
|
|
24
22
|
import { getObjectSizeInBytes, chunkArrByMaxSize, debouncePromise } from '../utils';
|
|
25
23
|
import { InitCreateBatchResponse, CreateContactsBatchResults } from '../types';
|
|
26
24
|
import ContactBookApi from './contactBookApi';
|
|
27
|
-
import { REQUEST_PAYLOAD_MAX_BYTES,
|
|
25
|
+
import { REQUEST_PAYLOAD_MAX_BYTES, CONTACTS_DELETE_MAX_AMOUNT } from '../constants';
|
|
28
26
|
import { ApiError, CreateContactsBatchError } from '../apiError';
|
|
29
27
|
import { DeleteContactsData } from '../types';
|
|
28
|
+
import BaseWithPoling from './baseWithPolingApi';
|
|
30
29
|
|
|
31
|
-
export default class ContactApi extends
|
|
30
|
+
export default class ContactApi extends BaseWithPoling {
|
|
32
31
|
constructor(
|
|
33
32
|
protected readonly apiCall: <T>(params: CalApiParams) => Promise<T>,
|
|
34
|
-
|
|
33
|
+
protected batchProcessApi: BatchProcessApi,
|
|
35
34
|
private bookServiceApi: ContactBookApi
|
|
36
35
|
) {
|
|
37
|
-
super(apiCall);
|
|
36
|
+
super(apiCall, batchProcessApi);
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
private readonly apiBasePath = 'contact';
|
|
@@ -368,38 +367,4 @@ export default class ContactApi extends BaseApi {
|
|
|
368
367
|
};
|
|
369
368
|
}
|
|
370
369
|
|
|
371
|
-
/**
|
|
372
|
-
* Pols specific batch process until status of it isn't turned from 'pending to something else.
|
|
373
|
-
*/
|
|
374
|
-
private async polling(batchId: string, repeats = 0): Promise<BatchProcessResponseDto> {
|
|
375
|
-
let batchProcess: BatchProcessResponseDto;
|
|
376
|
-
|
|
377
|
-
try {
|
|
378
|
-
batchProcess = await debouncePromise(() => this.batchProcessApi.getBatchProcess(batchId), 1000);
|
|
379
|
-
} catch (e) {
|
|
380
|
-
if (
|
|
381
|
-
repeats < FAILED_REQUEST_REPEATS
|
|
382
|
-
&& 'statusCode' in (e as object)
|
|
383
|
-
&& (e as unknown as ApiError).statusCode === 410
|
|
384
|
-
) {
|
|
385
|
-
return await debouncePromise(() => this.polling(batchId, repeats + 1), 2000);
|
|
386
|
-
}
|
|
387
|
-
if (repeats < FAILED_REQUEST_REPEATS) {
|
|
388
|
-
return this.polling(batchId, repeats + 1);
|
|
389
|
-
}
|
|
390
|
-
throw new CreateContactsBatchError((e as unknown as Error).message, batchId);
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
if (batchProcess.status === BatchProcessStatus.failed) {
|
|
394
|
-
throw new CreateContactsBatchError(
|
|
395
|
-
'Could not complete batch process',
|
|
396
|
-
batchId,
|
|
397
|
-
batchProcess.messages
|
|
398
|
-
);
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
return batchProcess.status === BatchProcessStatus.pending
|
|
402
|
-
? this.polling(batchId)
|
|
403
|
-
: batchProcess;
|
|
404
|
-
}
|
|
405
370
|
}
|
package/src/types.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Token } from '@or-sdk/base';
|
|
2
2
|
import {
|
|
3
3
|
BatchProcessStatus,
|
|
4
|
+
BulkContactDto,
|
|
5
|
+
BulkCreateRequestDto,
|
|
4
6
|
ContactBookParamsDto,
|
|
5
7
|
CreateFieldSchemaDto,
|
|
6
8
|
DeleteContactMultiParamsDto,
|
|
@@ -39,6 +41,12 @@ export type ContactsConfig = {
|
|
|
39
41
|
* make many requests, for example for bulk operations.
|
|
40
42
|
*/
|
|
41
43
|
withKeepAliveAgents?: boolean;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* If true, the API error details like request url, params and body,
|
|
47
|
+
* will be outputted to console
|
|
48
|
+
*/
|
|
49
|
+
withApiErrorLog?: boolean;
|
|
42
50
|
};
|
|
43
51
|
|
|
44
52
|
export interface ContactBookParams extends AdaptedListParams<ContactBookParamsDto> {
|
|
@@ -68,3 +76,11 @@ export type TrackBatchProcessResponse = {
|
|
|
68
76
|
};
|
|
69
77
|
|
|
70
78
|
export type CreateFieldSchemaParams = CreateFieldSchemaDto & {presetIds?: string[];};
|
|
79
|
+
|
|
80
|
+
export type BulkCreateData = Omit<BulkCreateRequestDto, 'batchId' | 'batchGroupId' | 'contacts'>
|
|
81
|
+
& { contacts: OptionalBy<BulkContactDto, 'contactKey'>[]; };
|
|
82
|
+
|
|
83
|
+
export type BatchBulkCreateData = Omit<BulkCreateRequestDto, 'batchId' | 'batchGroupId'>;
|
|
84
|
+
|
|
85
|
+
export type CreateBulkResults = {created: Record<string, string>; failed: Record<string, string>;};
|
|
86
|
+
|