@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
139 lines • 5.34 kB
TypeScript
import type { PathItemSearchParams, PathSearchAttributesParams, PathSearchAttributesResponse } from '../schemas';
import type { EndpointConfig } from '../../../core/base-client';
type ExecuteRequest = <TParams, TResponse>(config: EndpointConfig<TParams, TResponse>, params?: TParams, pathParams?: Record<string, string>) => Promise<TResponse>;
/**
* Creates the itemSearch resource methods
* OpenAPI Path: /item-search → itemSearch.*
* @description Advanced item search with filtering and facets
*/
export declare function createItemSearchResource(executeRequest: ExecuteRequest): {
/**
* Perform comprehensive item search with advanced filtering
*
* @fullPath api.openSearch.itemSearch.list
* @service open-search
* @domain product-search
* @dataMethod itemSearchData.list
* @discoverable true
* @searchTerms ["search", "items", "products", "query", "elasticsearch"]
* @relatedEndpoints ["itemSearch.attributes.list", "items.list"]
* @commonPatterns ["search products", "find items", "product search"]
*
* @param params Search parameters including query, filters, and options
* @returns Promise<ItemSearchResponse> Complete response with search results
*
* @example
* ```typescript
* // Basic search
* const response = await api.openSearch.itemSearch.list({
* q: 'electrical wire',
* searchType: 'query',
* size: 20
* });
*
* // Advanced search with filtering
* const filtered = await api.openSearch.itemSearch.list({
* q: 'tools',
* searchType: 'query',
* size: 50,
* operator: 'AND',
* filters: JSON.stringify([{attributeUid: 123, attributeValueUid: 456}]),
* classId5List: '1,2,3',
* from: 0
* });
*
* console.log(`Found ${response.data.totalResults} items`);
* response.data.items.forEach(item => {
* console.log(`${item.itemId}: ${item.itemDesc} (score: ${item.score})`);
* });
* ```
*/
list: (params: PathItemSearchParams) => Promise<{
params: Record<string, unknown> | unknown[];
data: {
totalResults: number;
items: import("zod").objectInputType<{
invMastUid: import("zod").ZodNumber;
}, import("zod").ZodTypeAny, "passthrough">[];
} & {
[k: string]: unknown;
};
options: Record<string, unknown> | unknown[];
status: number;
message: string;
count: number;
total: number;
totalResults: number;
}>;
/**
* Search attributes operations - mirrors OpenAPI path /item-search/attributes
*
* @fullPath api.openSearch.itemSearch.attributes.list
* @service open-search
* @domain product-search
* @dataMethod itemSearchData.attributes.list
* @discoverable true
* @searchTerms ["attributes", "facets", "filters", "search facets"]
* @relatedEndpoints ["itemSearch.list"]
* @commonPatterns ["get search facets", "filter attributes"]
*/
attributes: {
/**
* Get search attributes for faceted navigation
* @param params Search parameters to determine available attributes
* @returns Promise<SearchAttributesResponse> Complete response with attribute data
*
* @example
* ```typescript
* const response = await api.openSearch.itemSearch.attributes.list({
* q: 'electrical components',
* searchType: 'query'
* });
*
* response.data.attributes.forEach(attr => {
* console.log(`${attr.attributeName}:`);
* attr.values.forEach(value => {
* console.log(` ${value.attributeValue} (${value.count})`);
* });
* });
* ```
*/
list: (params: PathSearchAttributesParams) => Promise<PathSearchAttributesResponse>;
};
};
/**
* Creates the itemSearchData resource methods (data-only versions)
*/
export declare function createItemSearchDataResource(itemSearch: ReturnType<typeof createItemSearchResource>): {
/**
* Get item search data without response metadata
* @param params Search parameters
* @returns Promise<ItemSearchData> Search results data directly
*/
list: (params: PathItemSearchParams) => Promise<{
totalResults: number;
items: import("zod").objectInputType<{
invMastUid: import("zod").ZodNumber;
}, import("zod").ZodTypeAny, "passthrough">[];
} & {
[k: string]: unknown;
}>;
attributes: {
/**
* Get search attributes data without response metadata
* @param params Search parameters
* @returns Promise<SearchAttributesData> Attributes data directly
*/
list: (params: PathSearchAttributesParams) => Promise<{
attributes: import("zod").objectOutputType<{
attributeUid: import("zod").ZodNumber;
}, import("zod").ZodTypeAny, "passthrough">[];
} & {
[k: string]: unknown;
}>;
};
};
export type ItemSearchResource = ReturnType<typeof createItemSearchResource>;
export type ItemSearchDataResource = ReturnType<typeof createItemSearchDataResource>;
export {};
//# sourceMappingURL=item-search.d.ts.map