UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

88 lines 6.05 kB
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