UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

241 lines 8.93 kB
import type { ItemsListParams, ItemUpdateRequest, ItemOperationResponse, PathItemRefreshResponse } 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 items resource methods * OpenAPI Path: /items → items.* * @description Item index management operations */ export declare function createItemsResource(executeRequest: ExecuteRequest): { /** * List items from the search index - mirrors GET /items * * @fullPath api.openSearch.items.list * @service open-search * @domain product-management * @dataMethod itemsData.list * @discoverable true * @searchTerms ["items", "products", "inventory", "index", "management"] * @relatedEndpoints ["itemSearch.list"] * @commonPatterns ["manage items", "item operations", "product index"] * * @param params Optional filtering parameters * @returns Promise<ItemsListResponse> Complete response with item list * * @example * ```typescript * // List all items (with default pagination) * const response = await api.openSearch.items.list(); * * // List items with filtering * const filtered = await api.openSearch.items.list({ * itemId: 'WIRE', // Prefix filter * online: 'Y', // Only online items * statusCd: 704, // Active items only * limit: 50, * offset: 0 * }); * * console.log(`Found ${response.data.total} total items`); * response.data.data.forEach(item => { * console.log(`${item.itemId}: ${item.itemDesc}`); * }); * ``` */ list: (params?: ItemsListParams) => Promise<{ params: Record<string, unknown> | unknown[]; data: import("zod").objectInputType<{ inv_mast_uid: import("zod").ZodNumber; }, import("zod").ZodTypeAny, "passthrough">[]; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Get a specific item document - mirrors GET /items/{invMastUid} * * @fullPath api.openSearch.items.get * @service open-search * @domain product-management * @dataMethod itemsData.get * @discoverable true * @searchTerms ["item", "product", "detail", "get"] * @relatedEndpoints ["items.list", "items.update"] * @commonPatterns ["get item details", "retrieve product"] * * @param invMastUid Inventory master unique identifier * @returns Promise<ItemDetailResponse> Complete response with item details * * @example * ```typescript * const response = await api.openSearch.items.get(123456); * console.log(`Item: ${response.data.itemId} - ${response.data.itemDesc}`); * console.log(`Online: ${response.data.online}, Status: ${response.data.statusCd}`); * * if (response.data.keywords) { * console.log(`Keywords: ${response.data.keywords}`); * } * ``` */ get: (invMastUid: number) => Promise<{ params: Record<string, unknown> | unknown[]; data: { invMastUid: number; } & { [k: string]: unknown; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Update a specific item document - mirrors PUT /items/{invMastUid} * * @fullPath api.openSearch.items.update * @service open-search * @domain product-management * @dataMethod itemsData.update * @discoverable true * @searchTerms ["update", "item", "product", "modify"] * @relatedEndpoints ["items.get", "items.list"] * @commonPatterns ["update item", "modify product"] * * @param invMastUid Inventory master unique identifier * @param data Update data (statusCd and/or processCd) * @returns Promise<ItemOperationResponse> Complete response with update result * * @example * ```typescript * const response = await api.openSearch.items.update(123456, { * statusCd: 704, * processCd: 704 * }); * console.log(`Updated item: ${response.data.itemId}`); * ``` */ update: (invMastUid: number, data: ItemUpdateRequest) => Promise<ItemOperationResponse>; /** * Item refresh operations - mirrors OpenAPI path /items/{invMastUid}/refresh and /items/refresh */ refresh: { /** * Refresh a specific item document - mirrors GET /items/{invMastUid}/refresh * * @fullPath api.openSearch.items.refresh.get * @service open-search * @domain product-management * @dataMethod itemsData.refresh.get * @discoverable true * @searchTerms ["refresh", "item", "update index"] * @relatedEndpoints ["items.get", "items.refresh.update"] * @commonPatterns ["refresh item", "update item index"] * * @param invMastUid Inventory master unique identifier * @returns Promise<ItemRefreshResponse> Complete response with refresh result * * @example * ```typescript * const response = await api.openSearch.items.refresh.get(123456); * console.log(`Refreshed item: ${response.data.itemId}`); * ``` */ get: (invMastUid: number) => Promise<PathItemRefreshResponse>; /** * Trigger batch refresh of items - mirrors PUT /items/refresh * * @fullPath api.openSearch.items.refresh.update * @service open-search * @domain product-management * @dataMethod itemsData.refresh.update * @discoverable true * @searchTerms ["refresh", "batch", "update index"] * @relatedEndpoints ["items.refresh.get"] * @commonPatterns ["batch refresh", "update all items"] * * @returns Promise<BatchRefreshResponse> Complete response with batch refresh result * * @example * ```typescript * const response = await api.openSearch.items.refresh.update(); * if (response.data.status === 'success') { * console.log('Batch refresh initiated'); * } * ``` */ update: () => Promise<{ params: Record<string, unknown> | unknown[]; data: {} & { [k: string]: unknown; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; }; }; /** * Creates the itemsData resource methods (data-only versions) */ export declare function createItemsDataResource(items: ReturnType<typeof createItemsResource>): { /** * Get items list data without response metadata * @param params Optional filtering parameters * @returns Promise<ItemsListData> Items data directly */ list: (params?: ItemsListParams) => Promise<import("zod").objectInputType<{ inv_mast_uid: import("zod").ZodNumber; }, import("zod").ZodTypeAny, "passthrough">[]>; /** * Get item data without response metadata * @param invMastUid Inventory master unique identifier * @returns Promise<ItemDetail> Item data directly */ get: (invMastUid: number) => Promise<{ invMastUid: number; } & { [k: string]: unknown; }>; /** * Update item and get data without response metadata * @param invMastUid Inventory master unique identifier * @param data Update data * @returns Promise<unknown> Update result data directly */ update: (invMastUid: number, data: ItemUpdateRequest) => Promise<{ invMastUid: number; } & { [k: string]: unknown; }>; refresh: { /** * Refresh item and get data without response metadata * @param invMastUid Inventory master unique identifier * @returns Promise<unknown> Refresh result data directly */ get: (invMastUid: number) => Promise<{ invMastUid: number; } & { [k: string]: unknown; }>; /** * Trigger batch refresh and get data without response metadata * @returns Promise<unknown> Batch refresh result data directly */ update: () => Promise<{} & { [k: string]: unknown; }>; }; }; export type ItemsResource = ReturnType<typeof createItemsResource>; export type ItemsDataResource = ReturnType<typeof createItemsDataResource>; export {}; //# sourceMappingURL=items.d.ts.map