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