UNPKG

lin3s-sylius-shop-api-client

Version:

JavaScript client on top of SyliusShopApiPlugin to build integrations with ease.

33 lines (28 loc) 945 B
import axios from 'axios'; import session from "../session"; import createCart from './Pickup'; import {contentTypeJson} from '../requestConfig'; const addItem = (cartId, data, config, {resolve, reject}) => { const headers = { ...contentTypeJson(config), }; axios.post( `${config.baseUrl}/shop-api/carts/${cartId}/items`, JSON.stringify(data), headers ) .then(response => resolve(response.data)) .catch(error => reject(error)); }; export default config => ({productCode, variantCode, quantity, ...rest}) => { return new Promise((resolve, reject) => { try { const cartId = session(config).Cart.id(); addItem(cartId, {productCode, variantCode, quantity, ...rest}, config, {resolve, reject}); } catch (exception) { createCart(config)().then(cart => { addItem(cart.tokenValue, {productCode, variantCode, quantity, ...rest}, config, {resolve, reject}); }); } }); };