@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.
95 lines • 3.92 kB
JavaScript
import API from '../../APICore.js';
import Resource from '../Resource.js';
export default class Search extends Resource {
static baseUrl = `/rest/search/v2`;
createToken(tokenParams) {
return this.api.post(`${Search.baseUrl}/token?organizationId=${API.orgPlaceholder}`, tokenParams);
}
listFields(params) {
return this.api.get(this.buildPath(`${Search.baseUrl}/fields`, {
...params,
organizationId: params?.organizationId ?? this.api.organizationId,
}, { skipEmptyString: false }));
}
getFieldValues(fieldName, params) {
return this.api.get(this.buildPath(`${Search.baseUrl}/values`, {
field: encodeURI(`${fieldName}`),
...params,
organizationId: params?.organizationId ?? this.api.organizationId,
}));
}
// For more info about restQueryParameters values available
// See: https://platform.cloud.coveo.com/docs?api=SearchApi#!/Search/post_rest_search_v2
// or : https://docs.coveo.com/en/13/cloud-v2-api-reference/search-api#operation/searchUsingGet
query(restQueryParameters) {
const { viewAllContent, ...bodyParameters } = restQueryParameters;
return this.api.post(this.buildPath(Search.baseUrl, {
organizationId: this.api.organizationId,
viewAllContent: viewAllContent ? 1 : undefined,
}), bodyParameters);
}
/**
* Exports search results to a Microsoft Excel™ spreadsheet
* @param restQueryParameters Parameters of the query
* @returns A .xlsx file containing the search results of the specified query
*/
exportQuery(restQueryParameters) {
const { viewAllContent, ...bodyParameters } = restQueryParameters;
return this.api.post(this.buildPath(Search.baseUrl, {
organizationId: this.api.organizationId,
viewAllContent: viewAllContent ? 1 : undefined,
}), { ...bodyParameters, format: 'xlsx' }, { responseBodyFormat: 'blob' });
}
querySuggestPost(restQuerySuggestParameters) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return this.api.post(this.buildPath(`${Search.baseUrl}/querySuggest`, {
organizationId: this.api.organizationId,
}), restQuerySuggestParameters);
}
/**
* Get an item's preview in HTML format
* @param root0
* @param root0.enableNavigation
* @param root0.findNext
* @param root0.findPrevious
* @param root0.organizationId
* @param root0.page
* @param root0.requestedOutputSize
* @param root0.uniqueId
* @param root0.viewAllContent
*/
previewHTML({ enableNavigation, findNext, findPrevious, organizationId, page, requestedOutputSize, uniqueId, viewAllContent, ...body }) {
return this.api.post(this.buildPath(`${Search.baseUrl}/html`, {
enableNavigation,
findNext,
findPrevious,
page,
requestedOutputSize,
uniqueId,
viewAllContent,
organizationId: organizationId ?? this.api.organizationId,
}), body, { responseBodyFormat: 'text' });
}
/**
* Get item in JSON format
* @param params
*/
getDocument(params) {
return this.api.get(this.buildPath(`${Search.baseUrl}/document`, {
...params,
organizationId: params.organizationId ?? this.api.organizationId,
}, { skipEmptyString: false }));
}
/**
* Executes a facet search request.
* @param params
*/
searchFacet(params) {
const { viewAllContent, organizationId, ...bodyParameters } = params;
return this.api.post(this.buildPath(`${Search.baseUrl}/facet`, {
organizationId: organizationId ?? this.api.organizationId,
viewAllContent,
}), bodyParameters);
}
}
//# sourceMappingURL=Search.js.map