UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

186 lines 6.98 kB
import { CheckoutCreateResponseSchema, CheckoutGetResponseSchema, CheckoutDocResponseSchema, CheckoutValidateResponseSchema, CheckoutActivateResponseSchema, CheckoutProphet21HdrResponseSchema, CheckoutProphet21LineResponseSchema, } from '../schemas'; /** * Creates the checkout resource methods * OpenAPI Path: /checkout → checkout.* * @description End-to-end checkout processing with Prophet21 ERP integration */ export function createCheckoutResource(executeRequest) { return { /** * Create a new checkout session * @fullPath api.commerce.checkout.create * @service commerce * @domain checkout-processing * @dataMethod checkoutData.create * @discoverable true */ create: async (orderData) => { return executeRequest({ method: 'POST', path: '/checkout', responseSchema: CheckoutCreateResponseSchema, }, orderData); }, /** * Get checkout details by ID * @fullPath api.commerce.checkout.get * @service commerce * @domain checkout-processing * @dataMethod checkoutData.get * @discoverable true */ get: async (checkoutUid) => { return executeRequest({ method: 'GET', path: '/checkout/{checkoutUid}', responseSchema: CheckoutGetResponseSchema, }, undefined, { checkoutUid: String(checkoutUid) }); }, /** * Activate Operations */ activate: { /** * Activate and process checkout * @fullPath api.commerce.checkout.activate.update * @service commerce * @domain checkout-processing * @dataMethod checkoutData.activate.update * @discoverable true */ update: async (checkoutUid) => { return executeRequest({ method: 'PUT', path: '/checkout/{checkoutUid}/activate', responseSchema: CheckoutActivateResponseSchema, }, undefined, { checkoutUid: String(checkoutUid) }); }, }, /** * Doc Operations */ doc: { /** * Get formatted checkout document * @fullPath api.commerce.checkout.doc.get * @service commerce * @domain checkout-processing * @dataMethod checkoutData.doc.get * @discoverable true */ get: async (checkoutUid, params) => { return executeRequest({ method: 'GET', path: '/checkout/{checkoutUid}/doc', responseSchema: CheckoutDocResponseSchema, }, params, { checkoutUid: String(checkoutUid) }); }, }, /** * Validate Operations */ validate: { /** * Validate checkout data * @fullPath api.commerce.checkout.validate.update * @service commerce * @domain checkout-processing * @dataMethod checkoutData.validate.update * @discoverable true */ update: async (checkoutUid) => { return executeRequest({ method: 'PUT', path: '/checkout/{checkoutUid}/validate', responseSchema: CheckoutValidateResponseSchema, }, undefined, { checkoutUid: String(checkoutUid) }); }, }, /** * Prophet21 Hdr Operations */ prophet21Hdr: { /** * Create Prophet21 checkout header * @fullPath api.commerce.checkout.prophet21Hdr.create * @service commerce * @domain erp-integration * @dataMethod checkoutData.prophet21Hdr.create * @discoverable true */ create: async (checkoutUid) => { return executeRequest({ method: 'POST', path: '/checkout/{checkoutUid}/prophet21-hdr', responseSchema: CheckoutProphet21HdrResponseSchema, }, undefined, { checkoutUid: String(checkoutUid) }); }, /** * Prophet21 Line Operations */ prophet21Line: { /** * Add Prophet21 checkout lines * @fullPath api.commerce.checkout.prophet21Hdr.prophet21Line.create * @service commerce * @domain erp-integration * @dataMethod checkoutData.prophet21Hdr.prophet21Line.create * @discoverable true */ create: async (checkoutUid, prophet21HdrUid) => { return executeRequest({ method: 'POST', path: '/checkout/{checkoutUid}/prophet21-hdr/{prophet21HdrUid}/prophet21-line', responseSchema: CheckoutProphet21LineResponseSchema, }, undefined, { checkoutUid: String(checkoutUid), prophet21HdrUid: String(prophet21HdrUid) }); }, }, }, }; } /** * Creates the checkoutData resource methods (data-only versions) */ export function createCheckoutDataResource(checkout) { return { create: async (orderData) => { const response = await checkout.create(orderData); return response.data; }, get: async (checkoutUid) => { const response = await checkout.get(checkoutUid); return response.data; }, activate: { update: async (checkoutUid) => { const response = await checkout.activate.update(checkoutUid); return response.data; }, }, doc: { get: async (checkoutUid, params) => { const response = await checkout.doc.get(checkoutUid, params); return response.data; }, }, validate: { update: async (checkoutUid) => { const response = await checkout.validate.update(checkoutUid); return response.data; }, }, prophet21Hdr: { create: async (checkoutUid) => { const response = await checkout.prophet21Hdr.create(checkoutUid); return response.data; }, prophet21Line: { create: async (checkoutUid, prophet21HdrUid) => { const response = await checkout.prophet21Hdr.prophet21Line.create(checkoutUid, prophet21HdrUid); return response.data; }, }, }, }; } //# sourceMappingURL=checkout.js.map