UNPKG

@stylusapparel/opv3-merchant-api-nodejs

Version:

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

105 lines (102 loc) 4.07 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 = { _getInventory: (inventoryId) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.INVENTORY_URI + '/' + inventoryId ) .then(function (response) { if (response.status === 200) { resolve(__response._inventoryFetch(response.data)); } else { reject(__error._inventoryFetchError(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._inventoryFetchError(_errorDetails, _errorCode)); }); }); }, _listProductInventories: (params={}) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.INVENTORY_URI + '/products' , { params }) .then(function (response) { if (response.status === 200) { resolve(__response._inventoryList(response.data)); } else { reject(__error._inventoryFetchError(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._inventoryFetchError(_errorDetails, _errorCode)); }); }); }, _getProductInventory: (productId) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.INVENTORY_URI + '/product/' + productId ) .then(function (response) { if (response.status === 200) { resolve(__response._inventoryList(response.data)); } else { reject(__error._inventoryFetchError(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._inventoryFetchError(_errorDetails, _errorCode)); }); }); }, _getProductVariantInventory: (variantId) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.INVENTORY_URI + '/variants/' + variantId) .then(function (response) { if (response.status === 200) { resolve(__response._inventoryFetch(response.data)); } else { reject(__error._inventoryFetchError(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._inventoryFetchError(_errorDetails, _errorCode)); }); }); }, _getProductVariantFacilityInventory: (facilityName, variantId) => { return new Promise((resolve, reject) => { httpInstance .get( '/merchant/' + merchantName + __defaults.INVENTORY_URI + '/variants/' + variantId + '/facility/' + facilityName) .then(function (response) { if (response.status === 200) { resolve(__response._inventoryFetch(response.data)); } else { reject(__error._inventoryFetchError(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._inventoryFetchError(_errorDetails, _errorCode)); }); }); } }; return __this; };