procurement-vuex
Version:
Commerce vuex module
91 lines (80 loc) • 3.24 kB
JavaScript
import { auth, nav } from 'oak-vuex'
const { getHubAuthHeader } = auth
const { wrapRequest, wrapRequestWithRange,wrapEmptyRequest } = nav
const hubName = process.env.VUE_APP_RETAINHUB_NAME
const retainProcurementApiUrl = process.env.VUE_APP_RETAINHUB_PROCUREMENT_API_URL
const doFetchList = wrapRequestWithRange(() => {
const requestOptions = {
method: 'GET',
headers: { 'Content-type': 'application/json', 'Prefer': 'count=exact', ...getHubAuthHeader(hubName) }
}
return fetch(`${retainProcurementApiUrl}/sales_rep`, requestOptions);
//&select=*,brand_product(name),brand_product_id(name,price_wholesale)
})
const doPostOne = wrapRequest((retailteam) => {
if(retailteam&&retailteam.countries_iso_3){
let iso3 = retailteam.countries_iso_3;
delete retailteam.countries_iso_3;
retailteam.countries_iso3 = iso3;
}
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.pgrst.object+json',
'Prefer': 'return=representation',
...getHubAuthHeader(hubName)
},
body: JSON.stringify(retailteam)
}
return fetch(`${retainProcurementApiUrl}/retailteam`, requestOptions)
})
const doPatchOne = wrapRequest((retailteam) => {
if(retailteam&&retailteam.countries_iso_3){
let iso3 = retailteam.countries_iso_3;
delete retailteam.countries_iso_3;
retailteam.countries_iso3 = iso3;
}
const requestOptions = {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.pgrst.object+json',
'Prefer': 'return=representation',
...getHubAuthHeader(hubName)
},
body: JSON.stringify(retailteam)
}
return fetch(`${retainProcurementApiUrl}/retailteam?id=eq.${retailteam.id}`, requestOptions)
})
const doFetchOne = wrapRequest(({ retailTeamId,appId }) => {
const requestOptions = {
method: 'GET',
headers: { 'Content-type': 'application/json', 'Accept': 'application/vnd.pgrst.object+json', ...getHubAuthHeader(hubName) }
}
return fetch(`${retainProcurementApiUrl}/retailteam?id=eq.${retailTeamId}&app_id=eq.${appId}`, requestOptions)
})
const doDeleteSelected = wrapEmptyRequest(({retailTeamId}) => {
const requestOptions = {
method: 'DELETE',
headers: {
'Content-Type': 'application/json', ...getHubAuthHeader(hubName)
},
};
return fetch(`${retainProcurementApiUrl}/retailteam?id=in.(${retailTeamId})`, requestOptions)
})
const doFetchRetailTeamLookUpList = wrapRequest(({retailTeam}) => {
const requestOptions = {
method: 'POST',
headers: { 'Content-type': 'application/json', 'Accept': 'application/vnd.pgrst.object+json', ...getHubAuthHeader(hubName) },
body: JSON.stringify({
app_id: retailTeam.appId,
filter: { business_entity_id: retailTeam.businessEntityId, team_id: retailTeam.teamId }
})
};
return fetch(`${retainProcurementApiUrl}/rpc/retailteam_lookup`, requestOptions)
})
export default {
doFetchOne, doFetchList,
doPostOne, doPatchOne, doDeleteSelected,doFetchRetailTeamLookUpList
}