UNPKG

@stylusapparel/stylusop-api-node-wrapper

Version:

This is the official NodeJs wrapper for connecting to the StylusOP API

88 lines (86 loc) 3.41 kB
'use strict'; const __error = require('./error'); const __response = require('./response'); const { __defaults } = require('../constants/url'); const http = require('./http'); module.exports = (_token, __config) => { const httpInstance = http(_token, __config); const { username } = __config; const __this = { _getProduct: (productId) => { return new Promise((resolve, reject) => { httpInstance .get(__defaults.GET_PRODUCTS_URI + productId + '/vendor/' + username) .then(function (response) { if (response.status === 200) { resolve(__response._productFetch(response.data)); } else { reject(__error._productFetchError(response.data, response.status)); } }) .catch(function (error) { const _errorCode = (error && error.response && error.response.status) || 500; const _errorDetails = (error && error.response && error.response.data) || {}; reject(__error._productFetchError(_errorDetails, _errorCode)); }); }); }, _listProducts: () => { return new Promise((resolve, reject) => { httpInstance .get(__defaults.GET_PRODUCTS_URI + '/vendor/' + username) .then(function (response) { if (response.status === 200) { resolve(__response._productList(response.data)); } else { reject(__error._productFetchError(response.data, response.status)); } }) .catch(function (error) { const _errorCode = (error && error.response && error.response.status) || 500; const _errorDetails = (error && error.response && error.response.data) || {}; reject(__error._productFetchError(_errorDetails, _errorCode)); }); }); }, _searchProducts: ({ offset = 0, limit = 0, keyword = '', productIds = [] }) => { return new Promise((resolve, reject) => { httpInstance .get( __defaults.GET_PRODUCTS_URI + 'search/vendor/' + username + '?offset=' + offset + '&limit=' + limit + '&keyword=' + keyword + '&productIds=' + JSON.stringify(productIds || []), ) .then(function (response) { if (response.status === 200) { resolve(__response._productSearch(response.data)); } else { reject(__error._productSearchError(response.data, response.status)); } }) .catch(function (error) { const _errorCode = (error && error.response && error.response.status) || 500; const _errorDetails = (error && error.response && error.response.data) || {}; reject(__error._productSearchError(_errorDetails, _errorCode)); }); }); }, _findVariants: ({ variantIds = [] }) => { return new Promise((resolve, reject) => { httpInstance .get(__defaults.GET_PRODUCTS_URI + 'variants/find/vendor/' + username + '?variantIds=' + JSON.stringify(variantIds || [])) .then(function (response) { if (response.status === 200) { resolve(__response._variantFind(response.data)); } else { reject(__error._variantFindError(response.data, response.status)); } }) .catch(function (error) { const _errorCode = (error && error.response && error.response.status) || 500; const _errorDetails = (error && error.response && error.response.data) || {}; reject(__error._variantFindError(_errorDetails, _errorCode)); }); }); }, }; return __this; };