@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
190 lines • 7.02 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCheckoutResource = createCheckoutResource;
exports.createCheckoutDataResource = createCheckoutDataResource;
const schemas_1 = require("../schemas");
/**
* Creates the checkout resource methods
* OpenAPI Path: /checkout → checkout.*
* @description End-to-end checkout processing with Prophet21 ERP integration
*/
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: schemas_1.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: schemas_1.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: schemas_1.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: schemas_1.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: schemas_1.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: schemas_1.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: schemas_1.CheckoutProphet21LineResponseSchema,
}, undefined, { checkoutUid: String(checkoutUid), prophet21HdrUid: String(prophet21HdrUid) });
},
},
},
};
}
/**
* Creates the checkoutData resource methods (data-only versions)
*/
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