@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
241 lines • 8.93 kB
TypeScript
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