@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
87 lines • 3.72 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.OpenSearchClient = void 0;
const base_client_1 = require("../../core/base-client");
const resources_1 = require("./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();
* ```
*/
class OpenSearchClient extends base_client_1.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 = (0, resources_1.createPingResource)(boundExecuteRequest);
this.healthCheck = (0, resources_1.createHealthCheckResource)(boundExecuteRequest);
this.pingData = (0, resources_1.createPingDataResource)(this.ping);
this.healthCheckData = (0, resources_1.createHealthCheckDataResource)(this.healthCheck);
this.itemSearch = (0, resources_1.createItemSearchResource)(boundExecuteRequest);
this.itemSearchData = (0, resources_1.createItemSearchDataResource)(this.itemSearch);
this.items = (0, resources_1.createItemsResource)(boundExecuteRequest);
this.itemsData = (0, resources_1.createItemsDataResource)(this.items);
this.suggestions = (0, resources_1.createSuggestionsResource)(boundExecuteRequest);
this.suggestionsData = (0, resources_1.createSuggestionsDataResource)(this.suggestions);
}
getServiceDescription() {
return 'OpenSearch service for advanced product search and item index management';
}
}
exports.OpenSearchClient = OpenSearchClient;
//# sourceMappingURL=client.js.map