UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

75 lines 4.36 kB
import { RatesRequestParamsSchema, RatesResponseSchema } from '../schemas'; /** * Creates the rates resource methods * OpenAPI Path: /rates → rates.* * @description Shipping rate calculation endpoint for multi-carrier comparison */ export function createRatesResource(executeRequest) { return { /** * Get comprehensive shipping rates from multiple carriers * * @fullPath api.shipping.rates.create * @service shipping * @domain shipping-and-logistics * @dataMethod ratesData.create * @discoverable true * @searchTerms ["shipping rates", "calculate cost", "carrier comparison", "freight quotes", "delivery cost", "ups", "fedex", "usps", "dhl", "shipping options"] * @relatedEndpoints ["api.logistics.speedship.freight.get", "api.commerce.cart.shipping.calculate", "api.orders.shipping.estimate", "api.customers.addresses.validate"] * @commonPatterns ["Calculate shipping cost", "Compare carrier rates", "Get delivery options", "Estimate shipping", "Find cheapest option", "Get fastest delivery"] * @workflow ["e-commerce-checkout", "order-fulfillment", "shipping-estimation", "cost-analysis", "carrier-selection", "delivery-planning"] * @prerequisites ["Valid shipping addresses", "Package dimensions and weight", "Valid authentication token", "x-site-id header", "Carrier API access"] * @nextSteps ["Select shipping option", "Create shipping label", "Track shipment", "Update order with shipping cost", "Process payment with shipping"] * @businessRules ["Requires complete address information", "Package weight/dimensions mandatory", "Supports multiple packages", "Returns carrier-specific rates", "Includes all fees and surcharges"] * @functionalArea "shipping-and-logistics" * @crossSite "Supports multi-site shipping configurations and carrier accounts" * @caching "Cache rates for 15 minutes, invalidate on address or package changes" * @performance "Parallel carrier API calls, use response format to optimize data size, supports pagination for large results" * * @param params Comprehensive shipping rate request with origin, destination, and package details * @returns Promise<RatesResponse> Complete shipping rates from multiple carriers with detailed analysis */ create: async (params) => { return executeRequest({ method: 'POST', path: '/rates', paramsSchema: RatesRequestParamsSchema, responseSchema: RatesResponseSchema, }, params); }, }; } /** * Creates the ratesData resource methods (data-only versions) */ export function createRatesDataResource(rates) { return { /** * Get shipping rates data without full response metadata * * @fullPath api.shipping.ratesData.create * @service shipping * @domain shipping-and-logistics * @dataMethod ratesData * @discoverable true * @searchTerms ["rates data", "shipping cost", "carrier quotes", "delivery prices", "freight data"] * @relatedEndpoints ["api.shipping.rates.create", "api.logistics.speedship.freight.get"] * @commonPatterns ["Get rates data", "Calculate shipping cost", "Compare carrier options"] * @workflow ["e-commerce-checkout", "order-fulfillment", "shipping-estimation"] * @prerequisites ["Valid shipping addresses", "Package details", "Valid authentication token"] * @nextSteps ["Select shipping option", "Create shipping label", "Process payment"] * @businessRules ["Returns only rates data", "No response metadata included", "Direct access to rate comparison"] * @functionalArea "shipping-and-logistics" * @caching "Cache rates for 15 minutes" * @performance "Direct data access, optimal for rate comparisons and integrations" * * @param params Comprehensive shipping rate request parameters * @returns Promise<RatesData> Direct shipping rates data without response wrapper */ create: async (params) => { const response = await rates.create(params); return response.data; }, }; } //# sourceMappingURL=rates.js.map