@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
72 lines • 4.01 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomersClient = void 0;
const base_client_1 = require("../../core/base-client");
const resources_1 = require("./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();
* ```
*/
class CustomersClient extends base_client_1.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 = (0, resources_1.createHealthCheckResource)(boundExecuteRequest);
this.healthCheckData = (0, resources_1.createHealthCheckDataResource)(this.healthCheck);
this.customerList = (0, resources_1.createCustomerListResource)(boundExecuteRequest);
this.customerListData = (0, resources_1.createCustomerListDataResource)(this.customerList);
this.customerLookup = (0, resources_1.createCustomerLookupResource)(boundExecuteRequest);
this.customerLookupData = (0, resources_1.createCustomerLookupDataResource)(this.customerLookup);
this.customer = (0, resources_1.createCustomerResource)(boundExecuteRequest);
this.customerData = (0, resources_1.createCustomerDataResource)(this.customer);
this.contacts = (0, resources_1.createContactsResource)(boundExecuteRequest);
this.contactsData = (0, resources_1.createContactsDataResource)(this.contacts);
this.contactsUd = (0, resources_1.createContactsUdResource)(boundExecuteRequest);
this.contactsUdData = (0, resources_1.createContactsUdDataResource)(this.contactsUd);
this.shipTo = (0, resources_1.createShipToResource)(boundExecuteRequest);
this.shipToData = (0, resources_1.createShipToDataResource)(this.shipTo);
this.oeContactsCustomer = (0, resources_1.createOeContactsCustomerResource)(boundExecuteRequest);
this.oeContactsCustomerData = (0, resources_1.createOeContactsCustomerDataResource)(this.oeContactsCustomer);
}
}
exports.CustomersClient = CustomersClient;
//# sourceMappingURL=client.js.map