UNPKG

@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
"use strict"; 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