@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
88 lines • 6.05 kB
JavaScript
import { BaseServiceClient } from '../../core/base-client';
import { createAttributeGroupsResource, createAttributeGroupsDataResource, createAttributesResource, createAttributesDataResource, createBrandsResource, createBrandsDataResource, createCategoriesResource, createCategoriesDataResource, createContractsResource, createContractsDataResource, createHealthCheckResource, createHealthCheckDataResource, createInternalResource, createInternalDataResource, createInvMastResource, createInvMastDataResource, createInvMastLinksResource, createInvMastLinksDataResource, createInvMastSubPartsResource, createInvMastSubPartsDataResource, createItemCategoryResource, createItemCategoryDataResource, createItemFavoritesResource, createItemFavoritesDataResource, createItemUomResource, createItemUomDataResource, createItemWishlistResource, createItemWishlistDataResource, createLocationsResource, createLocationsDataResource, createPingResource, createPingDataResource, createVariantsResource, createVariantsDataResource, createInvLocResource, createInvLocDataResource, createInvMastUdResource, createInvMastUdDataResource, createP21Resource, createP21DataResource, } from './resources';
/**
* Items service client implementing OpenAPI Path Mirroring Pattern
*
* **CRITICAL**: All client structures follow exact OpenAPI path segments
*
* This client provides access to the Items API with full type safety and validation.
* All endpoints are organized by their OpenAPI path structure.
*
* @example
* ```typescript
* const client = new ItemsClient(httpClient);
*
* // Standard method - returns full response with metadata
* const response = await client.invMast.list({ limit: 10 });
* console.log(response.data); // Array of items
* console.log(response.total); // Total count
*
* // Data method - returns just the data
* const items = await client.invMastData.list({ limit: 10 });
* console.log(items); // Array of items directly
* ```
*/
export class ItemsClient extends BaseServiceClient {
/**
* Create a new ItemsClient instance
* @param http Configured HTTPClient instance
* @param baseUrl Base URL for the Items API (default: https://items.augur-api.com)
*/
constructor(http, baseUrl = 'https://items.augur-api.com') {
super('items', http, baseUrl);
// Create a wrapper function that calls executeRequest dynamically
// This allows tests to spy on executeRequest after construction
// Pass params when defined OR when there's a paramsSchema (for validation)
// Note: Resources build URLs directly, so pathParams is not used
const boundExecuteRequest = (config, params) => {
// Pass params if defined or if there's a paramsSchema (expects params)
if (params !== undefined || config.paramsSchema !== undefined) {
return this.executeRequest(config, params);
}
return this.executeRequest(config);
};
// Initialize standard API resources
this.attributeGroups = createAttributeGroupsResource(boundExecuteRequest);
this.attributes = createAttributesResource(boundExecuteRequest);
this.brands = createBrandsResource(boundExecuteRequest);
this.categories = createCategoriesResource(boundExecuteRequest);
this.contracts = createContractsResource(boundExecuteRequest);
this.healthCheck = createHealthCheckResource(boundExecuteRequest);
this.internal = createInternalResource(boundExecuteRequest);
this.invMast = createInvMastResource(boundExecuteRequest);
this.invMastLinks = createInvMastLinksResource(boundExecuteRequest);
this.invMastSubParts = createInvMastSubPartsResource(boundExecuteRequest);
this.itemCategory = createItemCategoryResource(boundExecuteRequest);
this.itemFavorites = createItemFavoritesResource(boundExecuteRequest);
this.itemUom = createItemUomResource(boundExecuteRequest);
this.itemWishlist = createItemWishlistResource(boundExecuteRequest);
this.locations = createLocationsResource(boundExecuteRequest);
this.ping = createPingResource(boundExecuteRequest);
this.variants = createVariantsResource(boundExecuteRequest);
this.invLoc = createInvLocResource(boundExecuteRequest);
this.invMastUd = createInvMastUdResource(boundExecuteRequest);
this.p21 = createP21Resource(boundExecuteRequest);
// Initialize data-only API resources (dual API pattern)
this.attributeGroupsData = createAttributeGroupsDataResource(this.attributeGroups);
this.attributesData = createAttributesDataResource(this.attributes);
this.brandsData = createBrandsDataResource(this.brands);
this.categoriesData = createCategoriesDataResource(this.categories);
this.contractsData = createContractsDataResource(this.contracts);
this.healthCheckData = createHealthCheckDataResource(this.healthCheck);
this.internalData = createInternalDataResource(this.internal);
this.invMastData = createInvMastDataResource(this.invMast);
this.invMastLinksData = createInvMastLinksDataResource(this.invMastLinks);
this.invMastSubPartsData = createInvMastSubPartsDataResource(this.invMastSubParts);
this.itemCategoryData = createItemCategoryDataResource(this.itemCategory);
this.itemFavoritesData = createItemFavoritesDataResource(this.itemFavorites);
this.itemUomData = createItemUomDataResource(this.itemUom);
this.itemWishlistData = createItemWishlistDataResource(this.itemWishlist);
this.locationsData = createLocationsDataResource(this.locations);
this.pingData = createPingDataResource(this.ping);
this.variantsData = createVariantsDataResource(this.variants);
this.invLocData = createInvLocDataResource(this.invLoc);
this.invMastUdData = createInvMastUdDataResource(this.invMastUd);
this.p21Data = createP21DataResource(this.p21);
}
}
//# sourceMappingURL=client.js.map