UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

60 lines 3.57 kB
import { BaseServiceClient } from '../../core/base-client'; import { createHealthCheckResource, createHealthCheckDataResource, createPingResource, createPingDataResource, createWarehouseResource, createWarehouseDataResource, createDistributorsResource, createDistributorsDataResource, createProductsResource, createProductsDataResource, createInvProfileHdrResource, createInvProfileHdrDataResource, createRestockHdrResource, createRestockHdrDataResource, createSectionsResource, createSectionsDataResource, } from './resources'; /** * VMI (Vendor Managed Inventory) API Client * @description Client for interacting with VMI microservice API endpoints for warehouse and inventory management * @example * ```typescript * import { HTTPClient } from '@augur/api-client/core'; * import { VMIClient } from '@augur/api-client/services/vmi'; * * const http = new HTTPClient('vmi', { siteId: 'your-site-id', bearerToken: 'your-token' }); * const vmi = new VMIClient(http); * * // List warehouses * const warehouses = await vmi.warehouse.list({ customerId: 12345 }); * * // Check inventory availability * const inventory = await vmi.warehouse.availability.get(123, { q: 'wire' }); * ``` */ export class VMIClient extends BaseServiceClient { /** * Create a new VMIClient instance * @param http Configured HTTPClient instance * @param baseUrl Base URL for the VMI API (default: https://vmi.augur-api.com) */ constructor(http, baseUrl = 'https://vmi.augur-api.com') { super('vmi', 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, pathParams) => { // Pass params if defined or if there's a paramsSchema (expects params) if (params !== undefined || config.paramsSchema !== undefined) { return this.executeRequest(config, params, pathParams); } return this.executeRequest(config, undefined, pathParams); }; // Initialize standard API resources this.healthCheck = createHealthCheckResource(boundExecuteRequest); this.ping = createPingResource(boundExecuteRequest); this.warehouse = createWarehouseResource(boundExecuteRequest); this.distributors = createDistributorsResource(boundExecuteRequest); this.products = createProductsResource(boundExecuteRequest); this.invProfileHdr = createInvProfileHdrResource(boundExecuteRequest); this.restockHdr = createRestockHdrResource(boundExecuteRequest); this.sections = createSectionsResource(boundExecuteRequest); // Initialize data-only API resources (dual API pattern) this.healthCheckData = createHealthCheckDataResource(this.healthCheck); this.pingData = createPingDataResource(this.ping); this.warehouseData = createWarehouseDataResource(this.warehouse); this.distributorsData = createDistributorsDataResource(this.distributors); this.productsData = createProductsDataResource(this.products); this.invProfileHdrData = createInvProfileHdrDataResource(this.invProfileHdr); this.restockHdrData = createRestockHdrDataResource(this.restockHdr); this.sectionsData = createSectionsDataResource(this.sections); } } //# sourceMappingURL=client.js.map