@stylusapparel/stylusop-api-node-wrapper
Version:
This is the official NodeJs wrapper for connecting to the StylusOP API
183 lines (181 loc) • 7.05 kB
JavaScript
;
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 = {
_getOrders: (filterObj) => {
return new Promise((resolve, reject) => {
let filter = '?';
let filterQuery = {};
if (filterObj.hasOwnProperty('dateRange') && filterObj.dateRange.start && filterObj.dateRange.end) {
filterQuery['dateRange'] = { from: filterObj.dateRange.start, to: filterObj.dateRange.end };
}
if (filterObj.hasOwnProperty('offset')) {
filter += `&offset=${filterObj.offset}`;
}
if (filterObj.hasOwnProperty('limit')) {
filter += `&limit=${filterObj.limit}`;
}
if (filterObj.hasOwnProperty('sort')) {
filter += `&sort=${filterObj.sort}`;
}
if (filterObj.hasOwnProperty('sortOrder')) {
filter += `&sortOrder=${filterObj.sortOrder}`;
}
if (filterObj.hasOwnProperty('orderId')) {
filterQuery['orderId'] = filterObj.orderId;
}
if (filterObj.hasOwnProperty('orderStatus')) {
filterQuery['orderStatus'] = filterObj.orderStatus;
}
filter += '&filter=' + JSON.stringify(filterQuery);
httpInstance
.get(__defaults.ORDERS_URI + '/vendor/' + username + filter)
.then(function (response) {
if (response.status === 200) {
resolve(__response._ordersFetch(response.data));
} else {
reject(__error._ordersFetchError(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._ordersFetchError(_errorDetails, _errorCode));
});
});
},
_getOrder: (orderId) => {
return new Promise((resolve, reject) => {
httpInstance
.get(__defaults.GET_ORDER_URI + orderId + '/vendor/' + username)
.then(function (response) {
if (response.status === 200) {
resolve(__response._orderFetch(response.data));
} else {
reject(__error._orderFetchError(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._orderFetchError(_errorDetails, _errorCode));
});
});
},
_getBulkOrderStatus: (orderIds) => {
return new Promise((resolve, reject) => {
httpInstance
.get(__defaults.GET_ORDER_URI + '/status/bulk/vendor/' + username + '?orderIds=' + orderIds)
.then(function (response) {
if (response.status === 200) {
resolve(__response._bulkOrderStatus(response.data));
} else {
reject(__error._orderFetchError(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._orderFetchError(_errorDetails, _errorCode));
});
});
},
_getOrderStatus: (orderId) => {
return new Promise((resolve, reject) => {
httpInstance
.get(__defaults.GET_ORDER_URI + orderId + '/status/vendor/' + username)
.then(function (response) {
if (response.status === 200) {
resolve(__response._orderStatus(response.data));
} else {
reject(__error._orderFetchError(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._orderFetchError(_errorDetails, _errorCode));
});
});
},
_getOrderActivity: (orderId) => {
return new Promise((resolve, reject) => {
httpInstance
.get(__defaults.GET_ORDER_URI + orderId + '/activity/vendor/' + username)
.then(function (response) {
if (response.status === 200) {
resolve(__response._orderActivity(response.data));
} else {
reject(__error._orderActivityError(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._orderActivityError(_errorDetails, _errorCode));
});
});
},
_pushOrder: (orderObj) => {
return new Promise((resolve, reject) => {
httpInstance
.post(__defaults.ORDERS_URI + '/vendor/' + username, orderObj)
.then(function (response) {
if (response.status === 200 || response.status === 201) {
resolve(__response._orderPush(response.data));
} else {
reject(__error._orderPushError(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._orderPushError(_errorDetails, _errorCode));
});
});
},
_cancelOrder: (orderId, cancelObj) => {
return new Promise((resolve, reject) => {
httpInstance
.post(__defaults.GET_ORDER_URI + orderId + '/cancel/vendor/' + username, cancelObj)
.then(function (response) {
if (response.status === 200) {
resolve(__response._orderCancel(response.data));
} else {
reject(__error._orderCancelError(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._orderCancelError(_errorDetails, _errorCode));
});
});
},
_orderUpdate: (orderId, updateObj) => {
return new Promise((resolve, reject) => {
updateObj.orderKey = orderId;
httpInstance
.patch(__defaults.GET_ORDER_URI + 'vendor/' + username, updateObj)
.then(function (response) {
if (response.status === 200) {
resolve(__response._orderUpdate(response.data));
} else {
reject(__error._orderUpdateError(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._orderUpdateError(_errorDetails, _errorCode));
});
});
},
};
return __this;
};