UNPKG

lin3s-sylius-shop-api-client

Version:

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

58 lines (42 loc) 2.27 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios); var _session = require('../session'); var _session2 = _interopRequireDefault(_session); var _Pickup = require('./Pickup'); var _Pickup2 = _interopRequireDefault(_Pickup); var _requestConfig = require('../requestConfig'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var addItem = function addItem(cartId, data, config, _ref) { var resolve = _ref.resolve, reject = _ref.reject; var headers = _extends({}, (0, _requestConfig.contentTypeJson)(config)); _axios2.default.post(config.baseUrl + '/shop-api/carts/' + cartId + '/items', JSON.stringify(data), headers).then(function (response) { return resolve(response.data); }).catch(function (error) { return reject(error); }); }; exports.default = function (config) { return function (_ref2) { var productCode = _ref2.productCode, variantCode = _ref2.variantCode, quantity = _ref2.quantity, rest = _objectWithoutProperties(_ref2, ['productCode', 'variantCode', 'quantity']); return new Promise(function (resolve, reject) { try { var cartId = (0, _session2.default)(config).Cart.id(); addItem(cartId, _extends({ productCode: productCode, variantCode: variantCode, quantity: quantity }, rest), config, { resolve: resolve, reject: reject }); } catch (exception) { (0, _Pickup2.default)(config)().then(function (cart) { addItem(cart.tokenValue, _extends({ productCode: productCode, variantCode: variantCode, quantity: quantity }, rest), config, { resolve: resolve, reject: reject }); }); } }); }; };