@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
138 lines • 4.98 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCartLineResource = createCartLineResource;
exports.createCartLineDataResource = createCartLineDataResource;
const schemas_1 = require("../schemas");
/**
* Creates the cartLine resource methods
* OpenAPI Path: /cart-line → cartLine.*
* @description Cart line management for individual items within shopping carts
*/
function createCartLineResource(executeRequest) {
return {
/**
* Retrieve all line items for a specific cart
* @fullPath api.commerce.cartLine.get
* @service commerce
* @domain cart-management
* @dataMethod cartLineData.get
* @discoverable true
*/
get: async (cartHdrUid) => {
return executeRequest({
method: 'GET',
path: '/cart-line/{cartHdrUid}',
responseSchema: schemas_1.CartLineListResponseSchema,
}, undefined, { cartHdrUid: String(cartHdrUid) });
},
/**
* Remove all line items from the cart
* @fullPath api.commerce.cartLine.delete
* @service commerce
* @domain cart-management
* @dataMethod cartLineData.delete
* @discoverable true
*/
delete: async (cartHdrUid) => {
return executeRequest({
method: 'DELETE',
path: '/cart-line/{cartHdrUid}',
responseSchema: schemas_1.CartLineModifyResponseSchema,
}, undefined, { cartHdrUid: String(cartHdrUid) });
},
/**
* Add Operations
*/
add: {
/**
* Add one or more items to the cart
* @fullPath api.commerce.cartLine.add.create
* @service commerce
* @domain cart-management
* @dataMethod cartLineData.add.create
* @discoverable true
*/
create: async (cartHdrUid, items) => {
return executeRequest({
method: 'POST',
path: '/cart-line/{cartHdrUid}/add',
responseSchema: schemas_1.CartLineModifyResponseSchema,
}, items, { cartHdrUid: String(cartHdrUid) });
},
},
/**
* Lines Operations - individual line item management
*/
lines: {
/**
* Remove a specific line item from the cart
* @fullPath api.commerce.cartLine.lines.delete
* @service commerce
* @domain cart-management
* @dataMethod cartLineData.lines.delete
* @discoverable true
*/
delete: async (cartHdrUid, lineNo) => {
return executeRequest({
method: 'DELETE',
path: '/cart-line/{cartHdrUid}/lines/{lineNo}',
responseSchema: schemas_1.CartLineDeleteResponseSchema,
}, undefined, { cartHdrUid: String(cartHdrUid), lineNo: String(lineNo) });
},
},
/**
* Update Operations
*/
update: {
/**
* Update quantities or details for existing cart line items
* @fullPath api.commerce.cartLine.update.create
* @service commerce
* @domain cart-management
* @dataMethod cartLineData.update.create
* @discoverable true
*/
create: async (cartHdrUid, items) => {
return executeRequest({
method: 'POST',
path: '/cart-line/{cartHdrUid}/update',
responseSchema: schemas_1.CartLineModifyResponseSchema,
}, items, { cartHdrUid: String(cartHdrUid) });
},
},
};
}
/**
* Creates the cartLineData resource methods (data-only versions)
*/
function createCartLineDataResource(cartLine) {
return {
get: async (cartHdrUid) => {
const response = await cartLine.get(cartHdrUid);
return response.data;
},
delete: async (cartHdrUid) => {
const response = await cartLine.delete(cartHdrUid);
return response.data;
},
add: {
create: async (cartHdrUid, items) => {
const response = await cartLine.add.create(cartHdrUid, items);
return response.data;
},
},
lines: {
delete: async (cartHdrUid, lineNo) => {
const response = await cartLine.lines.delete(cartHdrUid, lineNo);
return response.data;
},
},
update: {
create: async (cartHdrUid, items) => {
const response = await cartLine.update.create(cartHdrUid, items);
return response.data;
},
},
};
}
//# sourceMappingURL=cart-line.js.map