@coveo/platform-client
Version:
The main goal of this package is to provide an easy to configure and straightforward way of querying Coveo Cloud APIs using JavaScript.
118 lines • 5.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const APICore_js_1 = tslib_1.__importDefault(require("../../APICore.js"));
const Resource_js_1 = tslib_1.__importDefault(require("../Resource.js"));
const ResourceSnapshotsInterfaces_js_1 = require("./ResourceSnapshotsInterfaces.js");
class ResourceSnapshots extends Resource_js_1.default {
static baseUrl = `/rest/organizations/${APICore_js_1.default.orgPlaceholder}/snapshots`;
list(params) {
return this.api.get(this.buildPath(`${ResourceSnapshots.baseUrl}`, params));
}
get(snapshotId, options) {
return this.api.get(this.buildPath(`${ResourceSnapshots.baseUrl}/${snapshotId}`, options));
}
/**
* Lists the resources that the authenticated user can leverage in snapshots in the target organization.
*/
listResourceAccess() {
return this.api.get(`${ResourceSnapshots.baseUrl}/access/resource`);
}
/**
* Shows whether the authenticated user has the specified access level (i.e., read or write) to the content of the target snapshot.
* @param snapshotId
* @param options
*/
validateAccess(snapshotId, options) {
return this.api.get(this.buildPath(`${ResourceSnapshots.baseUrl}/${snapshotId}/access`, options));
}
/**
* Retrieves a ZIP file holding the content of the target snapshot, in the target format.
* @param snapshotId The unique identifier of the target snapshot.
* @param [options]
* @returns A newly created Blob object which contains the zipped snapshot
*/
export(snapshotId, options) {
return this.api.get(this.buildPath(`${ResourceSnapshots.baseUrl}/${snapshotId}/content`, options), {
headers: { accept: 'application/zip' },
responseBodyFormat: 'blob',
});
}
async getContent(snapshotId, options) {
const { url } = await this.generateUrl(snapshotId, options);
return fetch(url, { method: 'get' });
}
/**
* Creates a snapshot from a file containing the configuration.
* @param file The file containing the configuration.
* @param options
*/
createFromFile(file, options) {
const computedOptions = {
developerNotes: options?.developerNotes,
snapshotFileType: this.getSnapshotFileType(file),
};
const form = new FormData();
form.append('file', file);
return this.api.postForm(this.buildPath(`${ResourceSnapshots.baseUrl}/file`, computedOptions), form);
}
createFromOrganization(exportConfigurationModel, options) {
return this.api.post(this.buildPath(`${ResourceSnapshots.baseUrl}/self`, options), exportConfigurationModel);
}
generateUrl(snapshotId, options) {
return this.api.get(this.buildPath(`${ResourceSnapshots.baseUrl}/${snapshotId}/url`, options));
}
dryRun(snapshotId, options) {
return this.api.put(this.buildPath(`${ResourceSnapshots.baseUrl}/${snapshotId}/dryrun`, options));
}
apply(snapshotId, options) {
return this.api.put(this.buildPath(`${ResourceSnapshots.baseUrl}/${snapshotId}/apply`, options));
}
push(snapshotId, options) {
return this.api.put(this.buildPath(`${ResourceSnapshots.baseUrl}/${snapshotId}/push`, options));
}
delete(snapshotId) {
return this.api.delete(`${ResourceSnapshots.baseUrl}/${snapshotId}`);
}
createSynchronizationPlan(snapshotId) {
return this.api.post(`${ResourceSnapshots.baseUrl}/${snapshotId}/synchronization`);
}
getSynchronizationPlan(snapshotId, synchronizationPlanId) {
return this.api.get(`${ResourceSnapshots.baseUrl}/${snapshotId}/synchronization/${synchronizationPlanId}`);
}
updateSynchronizationPlan(snapshotId, synchronizationPlanId, synchronizationPlanModel) {
return this.api.put(`${ResourceSnapshots.baseUrl}/${snapshotId}/synchronization/${synchronizationPlanId}`, synchronizationPlanModel);
}
applySynchronizationPlan(snapshotId, synchronizationPlanId) {
return this.api.put(`${ResourceSnapshots.baseUrl}/${snapshotId}/synchronization/${synchronizationPlanId}/apply`);
}
updateSynchronizationPlanForChildren(snapshotId, synchronizationPlanId, options) {
return this.api.put(this.buildPath(`${ResourceSnapshots.baseUrl}/${snapshotId}/synchronization/${synchronizationPlanId}/children`, options));
}
getSnapshotFileType(file) {
switch (file.type) {
case 'application/x-zip-compressed':
case 'application/zip':
return ResourceSnapshotsInterfaces_js_1.ResourceSnapshotSupportedFileTypes.ZIP;
case 'application/json':
return ResourceSnapshotsInterfaces_js_1.ResourceSnapshotSupportedFileTypes.JSON;
default:
throw new Error('The uploaded file must be either a ZIP or a JSON file.');
}
}
/**
* @description Shows the diff report for the target snapshot and dry-run report
* @experimental
* @param snapshotId - The unique identifier of the target snapshot.
* @param relativeReportId - The unique identifier of the dry-run operation report associated with the target diff report.
* @param [numberOfLinesMax] - Maximum number of lines before the diff is downloaded to a file.
*/
diff(snapshotId, relativeReportId, numberOfLinesMax) {
return this.api.get(this.buildPath(`${ResourceSnapshots.baseUrl}/${snapshotId}/diff`, {
relativeReportId,
numberOfLinesMax,
}));
}
}
exports.default = ResourceSnapshots;
//# sourceMappingURL=ResourceSnapshots.js.map