@coveo/push-api-client 2.6.5 → 2.7.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/APICore.js +43 -0
- package/dist/APICore.js.map +1 -0
- package/dist/definitions/APICore.d.ts +11 -0
- package/dist/definitions/{source/catalog.stream.spec.d.ts → help/urlUtils.spec.d.ts} +0 -0
- package/dist/definitions/source/batchUploadDocumentsFromFile.spec.d.ts +1 -0
- package/dist/definitions/source/catalog.d.ts +1 -0
- package/dist/definitions/source/documentUploader.d.ts +3 -2
- package/dist/definitions/source/documentUploader.spec.d.ts +1 -0
- package/dist/definitions/source/push.d.ts +5 -5
- package/dist/definitions/uploadStrategy/fileContainerStrategy.d.ts +4 -4
- package/dist/definitions/uploadStrategy/fileContainerStrategy.spec.d.ts +1 -0
- package/dist/definitions/uploadStrategy/streamChunkStrategy.d.ts +4 -4
- package/dist/definitions/uploadStrategy/streamChunkStrategy.spec.d.ts +1 -0
- package/dist/docs/assets/search.js +1 -1
- package/dist/docs/classes/AnySecurityIdentityBuilder.html +4 -4
- package/dist/docs/classes/CatalogSource.html +24 -17
- package/dist/docs/classes/DocumentBuilder.html +28 -28
- package/dist/docs/classes/FieldAnalyser.html +12 -12
- package/dist/docs/classes/GroupSecurityIdentityBuilder.html +5 -5
- package/dist/docs/classes/PushSource.html +40 -43
- package/dist/docs/classes/UserSecurityIdentityBuilder.html +5 -5
- package/dist/docs/classes/VirtualGroupSecurityIdentityBuilder.html +5 -5
- package/dist/docs/classes/errors.FieldTypeInconsistencyError.html +3 -3
- package/dist/docs/classes/errors.InvalidDocument.html +3 -3
- package/dist/docs/classes/errors.InvalidPermanentId.html +3 -3
- package/dist/docs/classes/errors.NotAFileError.html +3 -3
- package/dist/docs/classes/errors.NotAJsonFileError.html +3 -3
- package/dist/docs/classes/errors.PrivilegeError.html +4 -4
- package/dist/docs/classes/errors.UnsupportedAttribute.html +3 -3
- package/dist/docs/classes/errors.UnsupportedFieldError.html +6 -6
- package/dist/docs/enums/PlatformEnvironment.html +5 -5
- package/dist/docs/functions/parseAndGetDocumentBuilderFromJSONDocument.html +1 -1
- package/dist/docs/interfaces/BatchUpdateDocuments.html +3 -3
- package/dist/docs/interfaces/Document.html +14 -14
- package/dist/docs/interfaces/SecurityIdentity.html +4 -4
- package/dist/docs/interfaces/SecurityIdentityBuilder.html +2 -2
- package/dist/docs/interfaces/UploadBatchCallbackData.html +5 -5
- package/dist/docs/modules/errors.html +1 -1
- package/dist/docs/types/BatchUpdateDocumentsFromFiles.html +1 -1
- package/dist/docs/types/CompressionType.html +1 -1
- package/dist/docs/types/FailedUploadCallback.html +1 -1
- package/dist/docs/types/Metadata.html +1 -1
- package/dist/docs/types/MetadataValue.html +1 -1
- package/dist/docs/types/PlatformUrlOptions.html +1 -1
- package/dist/docs/types/SecurityIdentityType.html +1 -1
- package/dist/docs/types/SuccessfulUploadCallback.html +1 -1
- package/dist/docs/types/Transformer.html +1 -1
- package/dist/docs/variables/BuiltInTransformers.html +1 -1
- package/dist/docs/variables/Source.html +1 -1
- package/dist/fieldAnalyser/fieldAnalyser.spec.js +0 -1
- package/dist/fieldAnalyser/fieldAnalyser.spec.js.map +1 -1
- package/dist/fieldAnalyser/fieldsUtils.spec.js +35 -3
- package/dist/fieldAnalyser/fieldsUtils.spec.js.map +1 -1
- package/dist/help/urlUtils.spec.js +42 -0
- package/dist/help/urlUtils.spec.js.map +1 -0
- package/dist/source/batchUploadDocumentsFromFile.spec.js +146 -0
- package/dist/source/batchUploadDocumentsFromFile.spec.js.map +1 -0
- package/dist/source/catalog.js +4 -5
- package/dist/source/catalog.js.map +1 -1
- package/dist/source/catalog.spec.js +20 -199
- package/dist/source/catalog.spec.js.map +1 -1
- package/dist/source/documentUploader.js +2 -3
- package/dist/source/documentUploader.js.map +1 -1
- package/dist/source/documentUploader.spec.js +119 -0
- package/dist/source/documentUploader.spec.js.map +1 -0
- package/dist/source/push.js +7 -11
- package/dist/source/push.js.map +1 -1
- package/dist/source/push.spec.js +91 -270
- package/dist/source/push.spec.js.map +1 -1
- package/dist/uploadStrategy/fileContainerStrategy.js +4 -5
- package/dist/uploadStrategy/fileContainerStrategy.js.map +1 -1
- package/dist/uploadStrategy/fileContainerStrategy.spec.js +87 -0
- package/dist/uploadStrategy/fileContainerStrategy.spec.js.map +1 -0
- package/dist/uploadStrategy/streamChunkStrategy.js +5 -6
- package/dist/uploadStrategy/streamChunkStrategy.js.map +1 -1
- package/dist/uploadStrategy/streamChunkStrategy.spec.js +82 -0
- package/dist/uploadStrategy/streamChunkStrategy.spec.js.map +1 -0
- package/package.json +2 -1
- package/dist/__stub__/largeDocuments/documentGenerator.js +0 -22
- package/dist/__stub__/largeDocuments/documentGenerator.js.map +0 -1
- package/dist/definitions/__stub__/largeDocuments/documentGenerator.d.ts +0 -12
- package/dist/definitions/help/axiosUtils.d.ts +0 -2
- package/dist/help/axiosUtils.js +0 -12
- package/dist/help/axiosUtils.js.map +0 -1
- package/dist/source/catalog.stream.spec.js +0 -238
- package/dist/source/catalog.stream.spec.js.map +0 -1
@@ -1,81 +1,34 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
/* eslint-disable node/no-unpublished-import */
|
4
3
|
jest.mock('@coveo/platform-client');
|
5
|
-
jest.mock('
|
6
|
-
jest.mock('../fieldAnalyser/fieldAnalyser');
|
4
|
+
jest.mock('./documentUploader');
|
7
5
|
const platform_client_1 = require("@coveo/platform-client");
|
8
6
|
const documentBuilder_1 = require("../documentBuilder");
|
9
|
-
const axios_1 = require("axios");
|
10
7
|
const path_1 = require("path");
|
11
8
|
const process_1 = require("process");
|
12
|
-
const inconsistencies_1 = require("../fieldAnalyser/inconsistencies");
|
13
|
-
const fieldErrors_1 = require("../errors/fieldErrors");
|
14
9
|
const catalog_1 = require("./catalog");
|
15
|
-
const
|
16
|
-
const
|
17
|
-
const
|
10
|
+
const documentUploader_1 = require("./documentUploader");
|
11
|
+
const uploadStrategy_1 = require("../uploadStrategy");
|
12
|
+
const mockedUploadBatch = jest.mocked(documentUploader_1.uploadBatch);
|
13
|
+
const mockedUploadBatchFromFile = jest.mocked(documentUploader_1.uploadBatchFromFile);
|
18
14
|
const mockedPlatformClient = jest.mocked(platform_client_1.default);
|
19
15
|
const mockCreateSource = jest.fn();
|
20
|
-
const mockEvaluate = jest.fn();
|
21
|
-
const mockCreateField = jest.fn();
|
22
|
-
const mockAnalyserAdd = jest.fn();
|
23
|
-
const mockAnalyserReport = jest.fn();
|
24
|
-
const mockedSuccessCallback = jest.fn();
|
25
|
-
const mockedErrorCallback = jest.fn();
|
26
16
|
const pathToStub = (0, path_1.join)((0, process_1.cwd)(), 'src', '__stub__');
|
27
|
-
const
|
28
|
-
|
29
|
-
|
30
|
-
Authorization: 'Bearer the_key',
|
31
|
-
'Content-Type': 'application/json',
|
17
|
+
const dummyClient = {
|
18
|
+
source: {
|
19
|
+
create: mockCreateSource,
|
32
20
|
},
|
33
21
|
};
|
34
|
-
const doAxiosMockFileContainerResponse = () => ({
|
35
|
-
data: {
|
36
|
-
uploadUri: 'https://fake.upload.url',
|
37
|
-
fileId: 'file_id',
|
38
|
-
requiredHeaders: { foo: 'bar' },
|
39
|
-
},
|
40
|
-
});
|
41
|
-
const doAxiosMockPost = () => {
|
42
|
-
mockAxios.post.mockImplementationOnce((url) => {
|
43
|
-
if (url.match(/files/)) {
|
44
|
-
return Promise.resolve(doAxiosMockFileContainerResponse());
|
45
|
-
}
|
46
|
-
return Promise.resolve();
|
47
|
-
});
|
48
|
-
};
|
49
|
-
const doMockAxiosPut = () => {
|
50
|
-
mockAxios.put.mockImplementation(() => Promise.resolve());
|
51
|
-
};
|
52
22
|
const doMockPlatformClient = () => {
|
53
|
-
mockedPlatformClient.mockImplementation(() =>
|
54
|
-
privilegeEvaluator: { evaluate: mockEvaluate },
|
55
|
-
source: {
|
56
|
-
create: mockCreateSource,
|
57
|
-
},
|
58
|
-
field: {
|
59
|
-
createFields: mockCreateField,
|
60
|
-
},
|
61
|
-
}));
|
62
|
-
};
|
63
|
-
const doMockFieldAnalyser = () => {
|
64
|
-
mockedFieldAnalyser.mockImplementation(() => ({
|
65
|
-
add: mockAnalyserAdd,
|
66
|
-
report: mockAnalyserReport,
|
67
|
-
}));
|
23
|
+
mockedPlatformClient.mockImplementation(() => dummyClient);
|
68
24
|
};
|
69
|
-
describe('CatalogSource
|
25
|
+
describe('CatalogSource', () => {
|
70
26
|
let source;
|
71
27
|
let batch;
|
72
28
|
beforeAll(() => {
|
73
29
|
doMockPlatformClient();
|
74
|
-
doMockFieldAnalyser();
|
75
|
-
doMockAxiosPut();
|
76
30
|
});
|
77
31
|
beforeEach(() => {
|
78
|
-
mockEvaluate.mockResolvedValue({ approved: true });
|
79
32
|
source = new catalog_1.CatalogSource('the_key', 'the_org');
|
80
33
|
batch = {
|
81
34
|
addOrUpdate: [
|
@@ -94,151 +47,19 @@ describe('CatalogSource - Push', () => {
|
|
94
47
|
sourceVisibility: 'SHARED',
|
95
48
|
});
|
96
49
|
});
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
});
|
101
|
-
it('should create a file container', async () => {
|
102
|
-
await source.batchUpdateDocuments('the_id', batch, {
|
103
|
-
createFields: false,
|
104
|
-
});
|
105
|
-
expect(mockAxios.post).toHaveBeenCalledWith('https://api.cloud.coveo.com/push/v1/organizations/the_org/files', expect.objectContaining({}), expectedDocumentsHeaders);
|
106
|
-
});
|
107
|
-
it('should upload files to container with returned upload uri and required headers ', async () => {
|
108
|
-
await source.batchUpdateDocuments('the_id', batch, {
|
109
|
-
createFields: false,
|
110
|
-
});
|
111
|
-
expect(mockAxios.put).toHaveBeenCalledWith('https://fake.upload.url/', expect.objectContaining({
|
112
|
-
addOrUpdate: expect.arrayContaining([
|
113
|
-
expect.objectContaining({ documentId: 'the_uri_1' }),
|
114
|
-
expect.objectContaining({ documentId: 'the_uri_2' }),
|
115
|
-
]),
|
116
|
-
delete: expect.arrayContaining([
|
117
|
-
expect.objectContaining({ documentId: 'the_uri_3' }),
|
118
|
-
]),
|
119
|
-
}), { headers: { foo: 'bar' }, maxBodyLength: 256e6 });
|
120
|
-
});
|
121
|
-
it('should push content to source with returned fileId', async () => {
|
122
|
-
await source.batchUpdateDocuments('the_id', batch, {
|
123
|
-
createFields: false,
|
124
|
-
});
|
125
|
-
expect(mockAxios.put).toHaveBeenCalledWith('https://api.cloud.coveo.com/push/v1/organizations/the_org/sources/the_id/stream/update?fileId=file_id', {}, expectedDocumentsHeaders);
|
50
|
+
it('should upload a batch', async () => {
|
51
|
+
await source.batchUpdateDocuments('the_id', batch, {
|
52
|
+
createFields: false,
|
126
53
|
});
|
54
|
+
expect(mockedUploadBatch).toHaveBeenCalledWith(dummyClient, expect.any(uploadStrategy_1.FileContainerStrategy), batch, { createFields: false });
|
127
55
|
});
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
});
|
132
|
-
beforeEach(() => {
|
133
|
-
doAxiosMockPost();
|
134
|
-
});
|
135
|
-
it('should upload documents from local file', async () => {
|
136
|
-
await source
|
137
|
-
.batchUpdateDocumentsFromFiles('the_id', [(0, path_1.join)(pathToStub, 'mixdocuments')], { createFields: false })
|
138
|
-
.batch();
|
139
|
-
expect(mockAxios.put).toHaveBeenCalledWith('https://fake.upload.url/', expect.objectContaining({
|
140
|
-
addOrUpdate: expect.arrayContaining([
|
141
|
-
expect.objectContaining({
|
142
|
-
documentId: 'https://www.themoviedb.org/movie/268',
|
143
|
-
}),
|
144
|
-
expect.objectContaining({
|
145
|
-
documentId: 'https://www.themoviedb.org/movie/999',
|
146
|
-
}),
|
147
|
-
]),
|
148
|
-
delete: expect.arrayContaining([]),
|
149
|
-
}), {
|
150
|
-
headers: {
|
151
|
-
foo: 'bar',
|
152
|
-
},
|
153
|
-
maxBodyLength: 256e6,
|
154
|
-
});
|
155
|
-
});
|
156
|
-
it('should throw an error if the path is invalid', async () => {
|
157
|
-
await expect(() => source
|
158
|
-
.batchUpdateDocumentsFromFiles('the_id', ['path/to/invalid/document'], { createFields: false })
|
159
|
-
.batch()).rejects.toThrow("no such file or directory, lstat 'path/to/invalid/document'");
|
160
|
-
});
|
161
|
-
it('should call the callback without error when uploading documents', async () => {
|
162
|
-
await source
|
163
|
-
.batchUpdateDocumentsFromFiles('the_id', [(0, path_1.join)(pathToStub, 'mixdocuments')], { createFields: false })
|
164
|
-
.onBatchError(mockedErrorCallback)
|
165
|
-
.batch();
|
166
|
-
expect(mockedErrorCallback).not.toHaveBeenCalled();
|
167
|
-
});
|
168
|
-
it('should only push JSON files', async () => {
|
169
|
-
await source
|
170
|
-
.batchUpdateDocumentsFromFiles('the_id', [(0, path_1.join)(pathToStub, 'mixdocuments')], { createFields: false })
|
171
|
-
.onBatchUpload(mockedSuccessCallback)
|
172
|
-
.batch();
|
173
|
-
expect(mockedSuccessCallback).toHaveBeenCalledWith(expect.objectContaining({ files: ['valid.json'] }));
|
174
|
-
});
|
175
|
-
it('should call the errorCallback on a failure from the API', async () => {
|
176
|
-
mockAxios.post.mockReset();
|
177
|
-
mockAxios.post.mockRejectedValue({ message: 'Error Message' });
|
178
|
-
await source
|
179
|
-
.batchUpdateDocumentsFromFiles('the_id', [(0, path_1.join)(pathToStub, 'mixdocuments')], { createFields: false })
|
180
|
-
.onBatchError(mockedErrorCallback)
|
181
|
-
.batch();
|
182
|
-
expect(mockedErrorCallback).toHaveBeenCalledWith({
|
183
|
-
message: 'Error Message',
|
184
|
-
}, expect.anything());
|
185
|
-
});
|
56
|
+
it('should upload documents from local file', async () => {
|
57
|
+
await source.batchUpdateDocumentsFromFiles('the_id', [(0, path_1.join)(pathToStub, 'mixdocuments')], { createFields: false });
|
58
|
+
expect(mockedUploadBatchFromFile).toHaveBeenCalledWith(dummyClient, expect.any(uploadStrategy_1.FileContainerStrategy), [(0, path_1.join)(pathToStub, 'mixdocuments')], { createFields: false });
|
186
59
|
});
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
});
|
191
|
-
describe('when there are no inconsistencies', () => {
|
192
|
-
beforeEach(() => {
|
193
|
-
const inconsistencies = new inconsistencies_1.Inconsistencies();
|
194
|
-
mockAnalyserReport.mockReturnValueOnce({ fields: [], inconsistencies });
|
195
|
-
});
|
196
|
-
it('should analyse document builder batch', async () => {
|
197
|
-
await source.batchUpdateDocuments('the_id', batch);
|
198
|
-
expect(mockAnalyserAdd).toHaveBeenCalledWith(batch.addOrUpdate);
|
199
|
-
});
|
200
|
-
});
|
201
|
-
describe('when document batches contain type inconsistencies', () => {
|
202
|
-
beforeEach(() => {
|
203
|
-
const inconsistencies = new inconsistencies_1.Inconsistencies().add('foo', [
|
204
|
-
platform_client_1.FieldTypes.STRING,
|
205
|
-
platform_client_1.FieldTypes.DOUBLE,
|
206
|
-
]);
|
207
|
-
mockAnalyserReport.mockReturnValueOnce({ fields: [], inconsistencies });
|
208
|
-
});
|
209
|
-
it('should throw', async () => {
|
210
|
-
await expect(() => source.batchUpdateDocuments('the_id', batch)).rejects.toThrow(fieldErrors_1.FieldTypeInconsistencyError);
|
211
|
-
});
|
212
|
-
});
|
213
|
-
describe('when document batches contain missing fields', () => {
|
214
|
-
beforeEach(() => {
|
215
|
-
const inconsistencies = new inconsistencies_1.Inconsistencies();
|
216
|
-
mockAnalyserReport.mockReturnValueOnce({
|
217
|
-
fields: [
|
218
|
-
{ name: 'stringfield', type: platform_client_1.FieldTypes.STRING },
|
219
|
-
{ name: 'numericalfield', type: platform_client_1.FieldTypes.DOUBLE },
|
220
|
-
],
|
221
|
-
inconsistencies,
|
222
|
-
});
|
223
|
-
});
|
224
|
-
it('should create fields', async () => {
|
225
|
-
await source.batchUpdateDocuments('the_id', batch);
|
226
|
-
expect(mockCreateField).toHaveBeenCalledWith([
|
227
|
-
{ name: 'stringfield', type: platform_client_1.FieldTypes.STRING },
|
228
|
-
{ name: 'numericalfield', type: platform_client_1.FieldTypes.DOUBLE },
|
229
|
-
]);
|
230
|
-
});
|
231
|
-
});
|
232
|
-
describe('when document batches do not contain missing fields', () => {
|
233
|
-
beforeEach(() => {
|
234
|
-
const inconsistencies = new inconsistencies_1.Inconsistencies();
|
235
|
-
mockAnalyserReport.mockReturnValueOnce({ fields: [], inconsistencies });
|
236
|
-
});
|
237
|
-
it('should not create fields', async () => {
|
238
|
-
source.batchUpdateDocuments('the_id', batch);
|
239
|
-
expect(mockCreateField).not.toHaveBeenCalled();
|
240
|
-
});
|
241
|
-
});
|
60
|
+
it('should stream documents from local file', async () => {
|
61
|
+
await source.batchStreamDocumentsFromFiles('the_id', [(0, path_1.join)(pathToStub, 'mixdocuments')], { createFields: false });
|
62
|
+
expect(mockedUploadBatchFromFile).toHaveBeenCalledWith(dummyClient, expect.any(uploadStrategy_1.StreamChunkStrategy), [(0, path_1.join)(pathToStub, 'mixdocuments')], { createFields: false });
|
242
63
|
});
|
243
64
|
});
|
244
65
|
//# sourceMappingURL=catalog.spec.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"catalog.spec.js","sourceRoot":"","sources":["../../src/source/catalog.spec.ts"],"names":[],"mappings":";;AAAA
|
1
|
+
{"version":3,"file":"catalog.spec.js","sourceRoot":"","sources":["../../src/source/catalog.spec.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.uploadBatchFromFile = exports.uploadBatch = exports.uploadDocument = void 0;
|
4
|
-
const axios_1 = require("axios");
|
5
4
|
const __1 = require("..");
|
6
5
|
const fieldUtils_1 = require("../fieldAnalyser/fieldUtils");
|
7
6
|
const function_1 = require("../help/function");
|
@@ -11,7 +10,7 @@ const defaultBatchOptions = {
|
|
11
10
|
createFields: true,
|
12
11
|
};
|
13
12
|
const defaultBatchFromFileOptions = Object.assign(Object.assign({}, defaultBatchOptions), { fieldNameTransformer: transformer_1.BuiltInTransformers.identity, maxConcurrent: 10, callback: function_1.noop });
|
14
|
-
async function uploadDocument(platformClient, docBuilder, addURL,
|
13
|
+
async function uploadDocument(platformClient, docBuilder, addURL, api, options) {
|
15
14
|
const { createFields } = Object.assign(Object.assign({}, defaultBatchFromFileOptions), options);
|
16
15
|
if (createFields) {
|
17
16
|
const analyser = new __1.FieldAnalyser(platformClient);
|
@@ -21,7 +20,7 @@ async function uploadDocument(platformClient, docBuilder, addURL, documentsAxios
|
|
21
20
|
}
|
22
21
|
const doc = docBuilder.build();
|
23
22
|
addURL.searchParams.append('documentId', doc.uri);
|
24
|
-
return
|
23
|
+
return api.put(addURL.toString(), docBuilder.marshal());
|
25
24
|
}
|
26
25
|
exports.uploadDocument = uploadDocument;
|
27
26
|
async function uploadBatch(platformClient, strategy, batch, options) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"documentUploader.js","sourceRoot":"","sources":["../../src/source/documentUploader.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"documentUploader.js","sourceRoot":"","sources":["../../src/source/documentUploader.ts"],"names":[],"mappings":";;;AAEA,0BAAiC;AAGjC,4DAAmE;AACnE,+CAAsC;AAOtC,wEAA2E;AAC3E,iFAAmF;AAEnF,MAAM,mBAAmB,GAA0C;IACjE,YAAY,EAAE,IAAI;CACnB,CAAC;AACF,MAAM,2BAA2B,mCAC5B,mBAAmB,KACtB,oBAAoB,EAAE,iCAAmB,CAAC,QAAQ,EAClD,aAAa,EAAE,EAAE,EACjB,QAAQ,EAAE,eAAI,GACf,CAAC;AAEK,KAAK,UAAU,cAAc,CAClC,cAA8B,EAC9B,UAA2B,EAC3B,MAAW,EACX,GAAY,EACZ,OAAqC;IAErC,MAAM,EAAC,YAAY,EAAC,mCACf,2BAA2B,GAC3B,OAAO,CACX,CAAC;IACF,IAAI,YAAY,EAAE;QAChB,MAAM,QAAQ,GAAG,IAAI,iBAAa,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAA,mCAAsB,EAAC,cAAc,EAAE,MAAM,CAAC,CAAC;KACtD;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AArBD,wCAqBC;AAEM,KAAK,UAAU,WAAW,CAC/B,cAA8B,EAC9B,QAAwB,EACxB,KAA2B,EAC3B,OAAqC;;IAErC,MAAM,EAAC,YAAY,EAAC,mCACf,mBAAmB,GACnB,OAAO,CACX,CAAC;IACF,IAAI,YAAY,EAAE;QAChB,MAAM,QAAQ,GAAG,IAAI,iBAAa,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAA,mCAAsB,EAAC,cAAc,EAAE,MAAM,CAAC,CAAC;KACtD;IACD,MAAM,CAAA,MAAA,QAAQ,CAAC,SAAS,wDAAI,CAAA,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAA,MAAA,QAAQ,CAAC,UAAU,wDAAI,CAAA,CAAC;IAE9B,OAAO,GAAG,CAAC;AACb,CAAC;AArBD,kCAqBC;AAED,SAAgB,mBAAmB,CACjC,cAA8B,EAC9B,QAAwB,EACxB,kBAA4B,EAC5B,OAAuC;IAEvC,MAAM,IAAI,mCACL,2BAA2B,GAC3B,OAAO,CACX,CAAC;IACF,OAAO,IAAI,kEAAmC,CAC5C,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,IAAI,CACL,CAAC;AACJ,CAAC;AAhBD,kDAgBC"}
|
@@ -0,0 +1,119 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
jest.mock('../fieldAnalyser/fieldAnalyser');
|
4
|
+
jest.mock('../fieldAnalyser/fieldUtils');
|
5
|
+
jest.mock('../APICore');
|
6
|
+
jest.mock('./batchUploadDocumentsFromFile');
|
7
|
+
const platform_client_1 = require("@coveo/platform-client");
|
8
|
+
const __1 = require("..");
|
9
|
+
const APICore_1 = require("../APICore");
|
10
|
+
const fieldAnalyser_1 = require("../fieldAnalyser/fieldAnalyser");
|
11
|
+
const fieldUtils_1 = require("../fieldAnalyser/fieldUtils");
|
12
|
+
const function_1 = require("../help/function");
|
13
|
+
const batchUploadDocumentsFromFile_1 = require("./batchUploadDocumentsFromFile");
|
14
|
+
const transformer_1 = require("../validation/transformers/transformer");
|
15
|
+
const documentUploader_1 = require("./documentUploader");
|
16
|
+
const dummyClient = new platform_client_1.default({ accessToken: 'my_token' });
|
17
|
+
const dummyAPI = new APICore_1.APICore('my_token');
|
18
|
+
const dummyStrategy = {
|
19
|
+
upload: jest.fn(),
|
20
|
+
preUpload: jest.fn(),
|
21
|
+
postUpload: jest.fn(),
|
22
|
+
};
|
23
|
+
describe('documentUploader', () => {
|
24
|
+
describe('#uploadDocument', () => {
|
25
|
+
const upload = (options) => (0, documentUploader_1.uploadDocument)(dummyClient, new __1.DocumentBuilder('http://some.url', 'Some document'), new URL('https://fake.upload.url'), dummyAPI, options);
|
26
|
+
it('should get field report from FieldAnalyser', async () => {
|
27
|
+
await upload({ createFields: true });
|
28
|
+
expect(fieldAnalyser_1.FieldAnalyser.prototype.report).toHaveBeenCalled();
|
29
|
+
});
|
30
|
+
it('should create missing fields from report', async () => {
|
31
|
+
await upload({ createFields: true });
|
32
|
+
expect(fieldUtils_1.createFieldsFromReport).toHaveBeenCalled();
|
33
|
+
});
|
34
|
+
it('should not create missing fields', async () => {
|
35
|
+
await upload({ createFields: false });
|
36
|
+
expect(fieldUtils_1.createFieldsFromReport).not.toHaveBeenCalled();
|
37
|
+
});
|
38
|
+
it('should upload document', async () => {
|
39
|
+
await upload();
|
40
|
+
expect(APICore_1.APICore.prototype.put).toBeCalledWith('https://fake.upload.url/?documentId=http%3A%2F%2Fsome.url', expect.objectContaining({
|
41
|
+
documentId: 'http://some.url',
|
42
|
+
title: 'Some document',
|
43
|
+
}));
|
44
|
+
});
|
45
|
+
});
|
46
|
+
describe('#uploadBatch', () => {
|
47
|
+
const batch = {
|
48
|
+
addOrUpdate: [new __1.DocumentBuilder('http://some.url', 'Some document')],
|
49
|
+
delete: [{ documentId: 'foo_bar', deleteChildren: true }],
|
50
|
+
};
|
51
|
+
const upload = (options) => (0, documentUploader_1.uploadBatch)(dummyClient, dummyStrategy, batch, options);
|
52
|
+
it('should get field report from FieldAnalyser', async () => {
|
53
|
+
await upload({ createFields: true });
|
54
|
+
expect(fieldAnalyser_1.FieldAnalyser.prototype.report).toHaveBeenCalled();
|
55
|
+
});
|
56
|
+
it('should create missing fields from report', async () => {
|
57
|
+
await upload({ createFields: true });
|
58
|
+
expect(fieldUtils_1.createFieldsFromReport).toHaveBeenCalled();
|
59
|
+
});
|
60
|
+
it('should not create missing fields', async () => {
|
61
|
+
await upload({ createFields: false });
|
62
|
+
expect(fieldUtils_1.createFieldsFromReport).not.toHaveBeenCalled();
|
63
|
+
});
|
64
|
+
it('should execute the pre-upload strategy logic', async () => {
|
65
|
+
await upload();
|
66
|
+
expect(dummyStrategy.preUpload).toHaveBeenCalled();
|
67
|
+
});
|
68
|
+
it('should execute the upload strategy logic', async () => {
|
69
|
+
await upload();
|
70
|
+
expect(dummyStrategy.upload).toHaveBeenCalledWith({
|
71
|
+
addOrUpdate: [
|
72
|
+
expect.objectContaining({
|
73
|
+
uri: 'http://some.url',
|
74
|
+
}),
|
75
|
+
],
|
76
|
+
delete: [
|
77
|
+
{
|
78
|
+
deleteChildren: true,
|
79
|
+
documentId: 'foo_bar',
|
80
|
+
},
|
81
|
+
],
|
82
|
+
});
|
83
|
+
});
|
84
|
+
it('should execute the post-upload strategy logic', async () => {
|
85
|
+
await upload();
|
86
|
+
expect(dummyStrategy.postUpload).toHaveBeenCalled();
|
87
|
+
});
|
88
|
+
});
|
89
|
+
describe('#uploadBatchFromFile', () => {
|
90
|
+
const dummyCallback = jest.fn();
|
91
|
+
it('should call BatchUploadDocumentsFromFilesReturn with default options', async () => {
|
92
|
+
await (0, documentUploader_1.uploadBatchFromFile)(dummyClient, dummyStrategy, [
|
93
|
+
'path/to/file',
|
94
|
+
'other/path',
|
95
|
+
]);
|
96
|
+
expect(batchUploadDocumentsFromFile_1.BatchUploadDocumentsFromFilesReturn).toHaveBeenCalledWith(dummyClient, dummyStrategy, ['path/to/file', 'other/path'], {
|
97
|
+
callback: function_1.noop,
|
98
|
+
createFields: true,
|
99
|
+
fieldNameTransformer: transformer_1.BuiltInTransformers.identity,
|
100
|
+
maxConcurrent: 10,
|
101
|
+
});
|
102
|
+
});
|
103
|
+
it('should call BatchUploadDocumentsFromFilesReturn with custom options', async () => {
|
104
|
+
await (0, documentUploader_1.uploadBatchFromFile)(dummyClient, dummyStrategy, ['path/to/file', 'other/path'], {
|
105
|
+
createFields: false,
|
106
|
+
maxConcurrent: 3,
|
107
|
+
fieldNameTransformer: transformer_1.BuiltInTransformers.toLowerCase,
|
108
|
+
callback: dummyCallback,
|
109
|
+
});
|
110
|
+
expect(batchUploadDocumentsFromFile_1.BatchUploadDocumentsFromFilesReturn).toHaveBeenCalledWith(dummyClient, dummyStrategy, ['path/to/file', 'other/path'], {
|
111
|
+
callback: dummyCallback,
|
112
|
+
createFields: false,
|
113
|
+
fieldNameTransformer: transformer_1.BuiltInTransformers.toLowerCase,
|
114
|
+
maxConcurrent: 3,
|
115
|
+
});
|
116
|
+
});
|
117
|
+
});
|
118
|
+
});
|
119
|
+
//# sourceMappingURL=documentUploader.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"documentUploader.spec.js","sourceRoot":"","sources":["../../src/source/documentUploader.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/source/push.js
CHANGED
@@ -6,16 +6,15 @@ require('abortcontroller-polyfill');
|
|
6
6
|
const platform_client_1 = require("@coveo/platform-client");
|
7
7
|
var platform_client_2 = require("@coveo/platform-client");
|
8
8
|
Object.defineProperty(exports, "SourceVisibility", { enumerable: true, get: function () { return platform_client_2.SourceVisibility; } });
|
9
|
-
const axios_1 = require("axios");
|
10
9
|
const dayjs = require("dayjs");
|
11
10
|
const url_1 = require("url");
|
12
11
|
const environment_1 = require("../environment");
|
13
12
|
const securityIdenty_1 = require("./securityIdenty");
|
14
|
-
const axiosUtils_1 = require("../help/axiosUtils");
|
15
13
|
const documentUploader_1 = require("./documentUploader");
|
16
14
|
const urlUtils_1 = require("../help/urlUtils");
|
17
15
|
const uploadStrategy_1 = require("../uploadStrategy");
|
18
16
|
const fieldUtils_1 = require("../fieldAnalyser/fieldUtils");
|
17
|
+
const APICore_1 = require("../APICore");
|
19
18
|
/**
|
20
19
|
* Manage a push source.
|
21
20
|
*
|
@@ -30,6 +29,7 @@ class PushSource {
|
|
30
29
|
constructor(apikey, organizationid, options) {
|
31
30
|
this.apikey = apikey;
|
32
31
|
this.organizationid = organizationid;
|
32
|
+
this.api = new APICore_1.APICore(this.apikey);
|
33
33
|
this.options = Object.assign(Object.assign({}, PushSource.defaultOptions), options);
|
34
34
|
this.platformClient = new platform_client_1.PlatformClient({
|
35
35
|
accessToken: this.apikey,
|
@@ -104,7 +104,7 @@ class PushSource {
|
|
104
104
|
*/
|
105
105
|
addOrUpdateDocument(sourceID, docBuilder, options) {
|
106
106
|
const addURL = new url_1.URL(`${this.urlBuilder(sourceID).baseURL}/documents`);
|
107
|
-
return (0, documentUploader_1.uploadDocument)(this.platformClient, docBuilder, addURL, this.
|
107
|
+
return (0, documentUploader_1.uploadDocument)(this.platformClient, docBuilder, addURL, this.api, options);
|
108
108
|
}
|
109
109
|
/**
|
110
110
|
* Manage batches of items in a push source. See [Manage Batches of Items in a Push Source](https://docs.coveo.com/en/90)
|
@@ -137,7 +137,7 @@ class PushSource {
|
|
137
137
|
const deleteURL = new url_1.URL(`${this.urlBuilder(sourceID).baseURL}/documents`);
|
138
138
|
deleteURL.searchParams.append('documentId', documentId);
|
139
139
|
deleteURL.searchParams.append('deleteChildren', `${deleteChildren}`);
|
140
|
-
return
|
140
|
+
return this.api.delete(deleteURL.toString());
|
141
141
|
}
|
142
142
|
/**
|
143
143
|
* Deletes all items whose last update was made by a Push API operation whose orderingId is strictly lower than a specified value. See [Deleting Old Items in a Push Source](https://docs.coveo.com/en/131).
|
@@ -149,7 +149,7 @@ class PushSource {
|
|
149
149
|
const date = dayjs(olderThan);
|
150
150
|
const deleteURL = new url_1.URL(`${this.urlBuilder(sourceID).baseURL}/documents/olderthan`);
|
151
151
|
deleteURL.searchParams.append('orderingId', `${date.valueOf()}`);
|
152
|
-
return
|
152
|
+
return this.api.delete(deleteURL.toString());
|
153
153
|
}
|
154
154
|
/**
|
155
155
|
* Set the status of a push source. See [Updating the Status of a Push Source](https://docs.coveo.com/en/35/)
|
@@ -160,10 +160,7 @@ class PushSource {
|
|
160
160
|
setSourceStatus(sourceID, status) {
|
161
161
|
const urlStatus = new url_1.URL(`${this.urlBuilder(sourceID).baseURL}/status`);
|
162
162
|
urlStatus.searchParams.append('statusType', status);
|
163
|
-
return
|
164
|
-
}
|
165
|
-
get documentsAxiosConfig() {
|
166
|
-
return (0, axiosUtils_1.axiosRequestHeaders)(this.apikey);
|
163
|
+
return this.api.post(urlStatus.toString());
|
167
164
|
}
|
168
165
|
async createFields(analyser) {
|
169
166
|
const report = analyser.report();
|
@@ -174,8 +171,7 @@ class PushSource {
|
|
174
171
|
}
|
175
172
|
fileContainerStrategy(sourceId) {
|
176
173
|
const urlBuilder = this.urlBuilder(sourceId);
|
177
|
-
|
178
|
-
return new uploadStrategy_1.FileContainerStrategy(urlBuilder, documentsAxiosConfig);
|
174
|
+
return new uploadStrategy_1.FileContainerStrategy(urlBuilder, this.api);
|
179
175
|
}
|
180
176
|
}
|
181
177
|
exports.PushSource = PushSource;
|
package/dist/source/push.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/source/push.ts"],"names":[],"mappings":";;;AAAA,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC5B,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAEpC,4DASgC;AAChC,0DAAwD;AAAhD,mHAAA,gBAAgB,OAAA;
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/source/push.ts"],"names":[],"mappings":"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"}
|