wholesale-vuex
Version:
Commerce vuex module
87 lines (83 loc) • 3 kB
JavaScript
import { auth, nav } from 'oak-vuex'
const { getHubAuthHeader } = auth
const { wrapRequest, wrapRequestWithRange } = nav
const hubName = process.env.VUE_APP_RETAINHUB_NAME
const retainWholesaleApiUrl = process.env.VUE_APP_RETAINHUB_WHOLESALE_API_URL
const doFetchAllorderProcessingIo = wrapRequest(({ sessionId ,appId}) => {
const requestOptions = {
method: 'GET',
headers: { 'Content-type': 'application/json', ...getHubAuthHeader(hubName) },
} ;
return fetch(`${retainWholesaleApiUrl}/wholesale_order_processing_io?session_id=eq.${sessionId}&app_id=eq.${appId}`, requestOptions)
})
const doPostOne = wrapRequest((item) => {
if(item){
delete item.is_modify;
delete item.user_response;
delete item.sub_question
item.io_input=JSON.stringify(item.io_input);
item.io_output=JSON.stringify(item.io_output);
}
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.pgrst.object+json',
'Prefer': 'return=representation',
...getHubAuthHeader(hubName)
},
body: JSON.stringify(item)
}
return fetch(`${retainWholesaleApiUrl}/wholesale_order_processing_io`, requestOptions)
})
const doPostMultiple = wrapRequest((items) => {
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Prefer': ['resolution=merge-duplicates', 'return=representation'],
...getHubAuthHeader(hubName)
},
body: JSON.stringify(items)
}
return fetch(`${retainWholesaleApiUrl}/wholesale_order_processing_io`, requestOptions)
})
const doPatchOne = wrapRequest((item) => {
if(item){
delete item.is_modify;
delete item.user_response;
delete item.sub_question;
if(item.io_output.value.order_item && item.io_output.value.order_item.id){
delete item.io_output.value.order_item.id
}
item.io_input=JSON.stringify(item.io_input);
item.io_output=JSON.stringify(item.io_output);
}
const requestOptions = {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.pgrst.object+json',
'Prefer': 'return=representation',
...getHubAuthHeader(hubName)
},
body: JSON.stringify(item)
}
return fetch(`${retainWholesaleApiUrl}/wholesale_order_processing_io?id=eq.${item.id}`, requestOptions)
})
const doDeleteSelected = wrapRequest(({item}) => {
const requestOptions = {
method: 'DELETE',
headers: {
'Content-Type': 'application/json', ...getHubAuthHeader(hubName)
},
};
return fetch(`${retainWholesaleApiUrl}/wholesale_order_processing_io?id=in.(${item.id})`, requestOptions)
})
export default {
doPostOne,
doPostMultiple,
doPatchOne,
doFetchAllorderProcessingIo,
doDeleteSelected
}