@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
127 lines • 5.75 kB
JavaScript
import { ShipviaRatesParamsSchema, ShipviaRatesResponseSchema, ShipviaRatesLtlParamsSchema, ShipviaRatesLtlResponseSchema, } from '../schemas';
/**
* Creates the shipvia resource methods
* OpenAPI Path: /shipvia/* → shipvia.*
* @description ShipVia shipping rate endpoints for standard and LTL freight
*/
export function createShipviaResource(executeRequest) {
return {
rates: {
/**
* Get shipping rates from available carriers
*
* @fullPath api.logistics.shipvia.rates.list
* @service logistics
* @domain shipping-rates
* @dataMethod shipviaData.rates.list
* @discoverable true
* @searchTerms ["shipping", "rates", "carriers", "shipvia", "freight", "delivery", "cost"]
* @relatedEndpoints ["api.logistics.shipvia.rates.ltl.list", "api.logistics.speedship.freight.get"]
* @commonPatterns ["Get shipping rates", "Compare carriers", "Calculate shipping costs"]
* @workflow ["order-fulfillment", "shipping-calculation", "carrier-selection"]
* @prerequisites ["Valid postal codes", "Weight and dimensions", "Location ID"]
* @nextSteps ["Select carrier", "Create shipment", "Generate label"]
* @businessRules ["Requires valid origin and destination postal codes", "Weight must be positive"]
* @functionalArea "shipping-and-fulfillment"
*
* @param params Shipping rate request parameters
* @returns Promise<ShipviaRatesResponse> Available shipping rates from carriers
*
* @example
* ```typescript
* const rates = await client.shipvia.rates.list({
* fromPostalCode: '90210',
* toPostalCode: '10001',
* totalWeight: 10,
* weightUnit: 'LB',
* locationId: 1
* });
* console.log(rates.data); // Array of carrier rates
* ```
*/
list: async (params) => {
return executeRequest({
method: 'GET',
path: '/shipvia/rates',
paramsSchema: ShipviaRatesParamsSchema,
responseSchema: ShipviaRatesResponseSchema,
}, params);
},
ltl: {
/**
* Get LTL (Less Than Truckload) freight rates
*
* @fullPath api.logistics.shipvia.rates.ltl.list
* @service logistics
* @domain ltl-freight
* @dataMethod shipviaData.rates.ltl.list
* @discoverable true
* @searchTerms ["ltl", "freight", "truckload", "rates", "shipping", "commodity"]
* @relatedEndpoints ["api.logistics.shipvia.rates.list", "api.logistics.speedship.freight.get"]
* @commonPatterns ["Get LTL rates", "Freight quotes", "Heavy shipping"]
* @workflow ["freight-shipping", "ltl-fulfillment", "carrier-selection"]
* @prerequisites ["Valid postal codes", "Commodity class", "Packaging type"]
* @nextSteps ["Select LTL carrier", "Book freight", "Schedule pickup"]
* @businessRules ["Requires commodity class and description", "Packaging type required for LTL"]
* @functionalArea "freight-shipping"
*
* @param params LTL rate request parameters including commodity details
* @returns Promise<ShipviaRatesLtlResponse> Available LTL freight rates
*
* @example
* ```typescript
* const ltlRates = await client.shipvia.rates.ltl.list({
* fromPostalCode: '90210',
* toPostalCode: '10001',
* totalWeight: 500,
* weightUnit: 'LB',
* locationId: 1,
* commodityClass: '70',
* commodityDescription: 'General freight',
* packagingType: 'PALLET'
* });
* console.log(ltlRates.data); // Array of LTL carrier rates
* ```
*/
list: async (params) => {
return executeRequest({
method: 'GET',
path: '/shipvia/rates/ltl',
paramsSchema: ShipviaRatesLtlParamsSchema,
responseSchema: ShipviaRatesLtlResponseSchema,
}, params);
},
},
},
};
}
/**
* Creates the shipviaData resource methods (data-only versions)
*/
export function createShipviaDataResource(shipvia) {
return {
rates: {
/**
* Get shipping rates data only
* @param params Shipping rate request parameters
* @returns Promise<ShipviaRatesData> Shipping rate data array
*/
list: async (params) => {
const response = await shipvia.rates.list(params);
return response.data;
},
ltl: {
/**
* Get LTL freight rates data only
* @param params LTL rate request parameters
* @returns Promise<ShipviaRatesData> LTL rate data array
*/
list: async (params) => {
const response = await shipvia.rates.ltl.list(params);
return response.data;
},
},
},
};
}
//# sourceMappingURL=shipvia.js.map