@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
JavaScript
;
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;
};