@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
68 lines • 4.03 kB
JavaScript
import { BaseServiceClient } from '../../core/base-client';
import { createHealthCheckResource, createHealthCheckDataResource, createCustomerListResource, createCustomerListDataResource, createCustomerLookupResource, createCustomerLookupDataResource, createCustomerResource, createCustomerDataResource, createContactsResource, createContactsDataResource, createContactsUdResource, createContactsUdDataResource, createShipToResource, createShipToDataResource, createOeContactsCustomerResource, createOeContactsCustomerDataResource, } from './resources';
/**
* Customers API Client - OpenAPI Path Mirroring Pattern Implementation
* @description Client for interacting with Customers microservice API endpoints
* @fullPath api.customers
* @service customers
* @domain customer-management
* @discoverable true
* @searchTerms ["customers", "contacts", "orders", "invoices", "quotes", "addresses", "ship-to"]
* @commonPatterns ["customer lookup", "contact management", "order history", "invoice tracking"]
*
* @example OpenAPI Path Mirroring Pattern
* ```typescript
* import { HTTPClient } from '@augur/api-client/core';
* import { CustomersClient } from '@augur/api-client/services/customers';
*
* const http = new HTTPClient('customers', { siteId: 'your-site-id', bearerToken: 'your-token' });
* const client = new CustomersClient(http);
*
* // OpenAPI Path: /customer → client.customerList.list()
* const customerList = await client.customerList.list({ limit: 10 });
*
* // OpenAPI Path: /customer/{customerId}/doc → client.customer(123).doc.get()
* const customer = await client.customer(123).doc.get();
*
* // OpenAPI Path: /contacts/{id}/customers → client.contacts(456).customers.list()
* const salesRepCustomers = await client.contacts(456).customers.list();
*
* // OpenAPI Path: /customer/{customerId}/orders/{orderNo} → client.customer(123).orders(789).get()
* const order = await client.customer(123).orders(789).get();
* ```
*/
export class CustomersClient extends BaseServiceClient {
/**
* Create a new CustomersClient instance
* @param http Configured HTTPClient instance
* @param baseUrl Base URL for the Customers API (default: https://customers.augur-api.com)
*/
constructor(http, baseUrl = 'https://customers.augur-api.com') {
super('customers', http, baseUrl);
// Bind executeRequest for resource factories
const boundExecuteRequest = (config, params, pathParams) => {
if (params !== undefined || config.paramsSchema !== undefined) {
return this.executeRequest(config, params, pathParams);
}
return this.executeRequest(config, undefined, pathParams);
};
// Initialize resources
this.healthCheck = createHealthCheckResource(boundExecuteRequest);
this.healthCheckData = createHealthCheckDataResource(this.healthCheck);
this.customerList = createCustomerListResource(boundExecuteRequest);
this.customerListData = createCustomerListDataResource(this.customerList);
this.customerLookup = createCustomerLookupResource(boundExecuteRequest);
this.customerLookupData = createCustomerLookupDataResource(this.customerLookup);
this.customer = createCustomerResource(boundExecuteRequest);
this.customerData = createCustomerDataResource(this.customer);
this.contacts = createContactsResource(boundExecuteRequest);
this.contactsData = createContactsDataResource(this.contacts);
this.contactsUd = createContactsUdResource(boundExecuteRequest);
this.contactsUdData = createContactsUdDataResource(this.contactsUd);
this.shipTo = createShipToResource(boundExecuteRequest);
this.shipToData = createShipToDataResource(this.shipTo);
this.oeContactsCustomer = createOeContactsCustomerResource(boundExecuteRequest);
this.oeContactsCustomerData = createOeContactsCustomerDataResource(this.oeContactsCustomer);
}
}
//# sourceMappingURL=client.js.map