UNPKG

@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
'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 = { _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; };