UNPKG

@stylusapparel/opv3-merchant-api-nodejs

Version:

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

185 lines (183 loc) 7.33 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 = { /** * Fetches a list of orders for the merchant. * @param {Object} [params={}] - Query parameters to filter the orders. * @param {number} [params.limit] - Limit the number of orders returned. * @param {number} [params.offset] - Offset for pagination. * @param {string} [params.status] - Filter orders by status. * @returns {Promise<Object[]>} Promise resolving to an array of orders. */ _getOrders: (params = {}) => { // console.log('Getting orders with params: ', params); return new Promise((resolve, reject) => { httpInstance .get('/merchant/' + merchantName + __defaults.ORDERS_URI, { params }) .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('/merchant/' + merchantName + __defaults.ORDERS_URI + '/' + orderId) .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.ORDERS_URI + '/status/bulk/vendor/' + merchantName + '?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( '/merchant/' + merchantName + __defaults.ORDERS_URI + orderId) // .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('/merchant/' + merchantName + __defaults.ORDERS_URI + '/' + orderId + '/activities') .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('/merchant/' + merchantName + __defaults.ORDERS_URI, 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 .patch('/merchant/' + merchantName + __defaults.ORDERS_URI + '/' + orderId + '/cancel', 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) => { httpInstance .put('merchant/' + merchantName + __defaults.ORDERS_URI + '/' + orderId, 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)); }); }); }, _orderUpdateItems: (orderId, updateObj) => { return new Promise((resolve, reject) => { httpInstance .patch('merchant/' + merchantName + __defaults.ORDERS_URI + '/' + orderId + '/items', 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; };