@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
186 lines • 6.98 kB
JavaScript
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