All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.ServiceProvider.commerce-delivery-cart.v1.0.CartItem.js Maven / Gradle / Ivy

/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

import AJAX from '../../../utilities/AJAX/index';

const CARTS_PATH = '/carts';
const CART_ITEMS_PATH = '/cart-items';
const ITEMS_PATH = '/items';

const VERSION = 'v1.0';

function resolveItemsPath(basePath = '', cartId) {
	return `${basePath}${VERSION}${CARTS_PATH}/${cartId}${ITEMS_PATH}`;
}

function resolveCartItemsPath(basePath = '', itemId) {
	return `${basePath}${VERSION}${CART_ITEMS_PATH}/${itemId}`;
}

function resolveCartItemsBatchPath(basePath = '') {
	return `${basePath}${VERSION}${CART_ITEMS_PATH}/batch`;
}

export default function CartItem(basePath) {
	return {
		createItemByCartId: (cartId, json) =>
			AJAX.POST(resolveItemsPath(basePath, cartId), json),

		deleteItemById: (itemId) =>
			AJAX.DELETE(resolveCartItemsPath(basePath, itemId)),

		deleteItemsById: (items) =>
			AJAX.DELETE(resolveCartItemsBatchPath(basePath), {
				body: JSON.stringify(items),
			}),

		getItemById: (itemId) =>
			AJAX.GET(resolveCartItemsPath(basePath, itemId)),

		getItemsByCartId: (cartId, params) => {
			return AJAX.GET(resolveItemsPath(basePath, cartId), {}, params);
		},

		replaceItemById: (itemId, json) =>
			AJAX.PUT(resolveCartItemsPath(basePath, itemId), json),

		updateItemById: (itemId, jsonProps) =>
			AJAX.PATCH(resolveCartItemsPath(basePath, itemId), jsonProps),
	};
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy