UNPKG

vtex-api-sauce

Version:

Handle VTEX API requests with promises.

62 lines (48 loc) 1.94 kB
'use strict'; require('babel-core/register'); require('babel-polyfill'); var _apisauce = require('apisauce'); var _apisauce2 = _interopRequireDefault(_apisauce); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } var create = function create(baseURL) { // Create and configure an apisauce-based api object. var api = _apisauce2.default.create({ baseURL: baseURL, headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, timeout: 20000 }); var search = function () { var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(query) { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; return _context.abrupt('return', api.get('/api/catalog_system/pub/products/search?' + query)); case 4: _context.prev = 4; _context.t0 = _context['catch'](0); console.error('Error trying to get product: ' + _context.t0); case 7: case 'end': return _context.stop(); } } }, _callee, undefined, [[0, 4]]); })); return function search(_x) { return _ref.apply(this, arguments); }; }(); // The public API return { search: search }; }; module.exports = { create: create };