UNPKG

@stylusapparel/opv3-merchant-api-nodejs

Version:

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

104 lines (102 loc) 3.96 kB
'use strict'; const __error = require('./error'); const __response = require('./response'); const { __defaults } = require('../constants/url'); const http = require('./http'); module.exports = (_merchantId, _token, __config) => { const { merchantName } = __config; const httpInstance = http(_merchantId ?? merchantName, _token, __config); const __this = { _getProduct: (productId) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.PRODUCTS_URI + '/' + productId ) .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)); }); }); }, _getProductPricing: (productId) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.PRODUCTS_URI + '/' + productId + '/pricing' ) .then(function (response) { if (response.status === 200) { resolve(__response._productPricingFetch(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: (params={}) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.PRODUCTS_URI , { params }) .then(function (response) { if (response.status === 200) { resolve(__response._productList(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)); }); }); }, _getVariant: (variantId) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.PRODUCTS_URI + '/variants/' + variantId) .then(function (response) { if (response.status === 200) { resolve(__response._variantFetch(response.data)); } else { reject(__error._variantFetchError(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._variantFetchError(_errorDetails, _errorCode)); }); }); }, _getProductVariantPricing: (variantId) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.PRODUCTS_URI + '/variants/' + variantId + '/pricing') .then(function (response) { if (response.status === 200) { resolve(__response._variantPricingFetch(response.data)); } else { reject(__error._variantFetchError(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._variantFetchError(_errorDetails, _errorCode)); }); }); }, }; return __this; };