@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
83 lines • 3.64 kB
JavaScript
import { BaseServiceClient } from '../../core/base-client';
import { createPingResource, createHealthCheckResource, createPingDataResource, createHealthCheckDataResource, createItemSearchResource, createItemSearchDataResource, createItemsResource, createItemsDataResource, createSuggestionsResource, createSuggestionsDataResource, } from './resources';
/**
* OpenSearch service client for advanced product search capabilities
*
* Provides comprehensive search functionality including:
* - Advanced item search with filtering and facets
* - Search result attributes and faceted navigation
* - Item index management and refresh operations
* - Health monitoring and service status
*
* @fullPath api.openSearch
* @service open-search
* @domain product-search
* @discoverable true
* @searchTerms ["opensearch", "elasticsearch", "search", "items", "products"]
* @relatedEndpoints ["api.openSearch.itemSearch.list", "api.openSearch.items.list"]
* @commonPatterns ["Product search", "Item management", "Search indexing"]
*
* @example
* ```typescript
* import { HTTPClient } from '@augur/api-client/core';
* import { OpenSearchClient } from '@augur/api-client/services/open-search';
*
* const http = new HTTPClient('open-search', { siteId: 'your-site-id', bearerToken: 'your-token' });
* const openSearch = new OpenSearchClient(http);
*
* // Check service health
* const health = await openSearch.healthCheck.get();
* const ping = await openSearch.ping.get();
*
* // Search for items
* const results = await openSearch.itemSearch.list({
* q: 'electrical wire',
* searchType: 'query',
* size: 20
* });
*
* // Get search facets
* const facets = await openSearch.itemSearch.attributes.list({
* q: 'electrical components',
* searchType: 'query'
* });
*
* // Manage items
* const items = await openSearch.items.list({ online: 'Y', statusCd: 704 });
* const item = await openSearch.items.get(123456);
* await openSearch.items.update(123456, { statusCd: 704, processCd: 704 });
*
* // Refresh operations
* await openSearch.items.refresh.get(123456);
* await openSearch.items.refresh.update();
* ```
*/
export class OpenSearchClient extends BaseServiceClient {
/**
* Create a new OpenSearchClient instance
* @param http Configured HTTPClient instance
* @param baseUrl Base URL for the OpenSearch API (default: https://open-search.augur-api.com)
*/
constructor(http, baseUrl = 'https://open-search.augur-api.com') {
super('open-search', http, baseUrl);
// Bind executeRequest for resource factories
const boundExecuteRequest = (config, params, pathParams) => {
return this.executeRequest(config, params, pathParams);
};
// Initialize resources
this.ping = createPingResource(boundExecuteRequest);
this.healthCheck = createHealthCheckResource(boundExecuteRequest);
this.pingData = createPingDataResource(this.ping);
this.healthCheckData = createHealthCheckDataResource(this.healthCheck);
this.itemSearch = createItemSearchResource(boundExecuteRequest);
this.itemSearchData = createItemSearchDataResource(this.itemSearch);
this.items = createItemsResource(boundExecuteRequest);
this.itemsData = createItemsDataResource(this.items);
this.suggestions = createSuggestionsResource(boundExecuteRequest);
this.suggestionsData = createSuggestionsDataResource(this.suggestions);
}
getServiceDescription() {
return 'OpenSearch service for advanced product search and item index management';
}
}
//# sourceMappingURL=client.js.map