UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

139 lines 5.34 kB
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