commerce-vuex
Version:
Commerce vuex module
76 lines (68 loc) • 3.25 kB
JavaScript
import { auth, nav } from 'oak-vuex'
const { getHubAuthHeader } = auth
const { wrapRequest, wrapRequestWithRange } = nav
const hubName = process.env.VUE_APP_RETAINHUB_NAME
const oakTradeApiUrl = process.env.VUE_APP_RETAINHUB_COMMERCE_API_URL
const doFetchList = wrapRequestWithRange(({ brandId, organizationId, appId, limit, offset }) => {
const requestOptions = {
method: 'GET',
headers: { 'Content-type': 'application/json', 'Prefer': 'count=exact', ...getHubAuthHeader(hubName) },
};
return fetch(`${oakTradeApiUrl}/brand_licence?brand_id=eq.${brandId}&agent_org_id=eq.${organizationId}&app_id=eq.${appId}&limit=${limit}&offset=${offset}&select=*,organization(name),brand(name)`, requestOptions)
})
const doPostOne = wrapRequest((brand) => {
if(brand.invitation_date || brand.activation_date || brand.termination_date){
brand.invitation_date = new Date(brand.invitation_date.invite_date + ' ' + brand.invitation_date.invite_time);
brand.activation_date = new Date(brand.activation_date.activate_date + ' ' + brand.activation_date.activate_time);
brand.termination_date = new Date(brand.termination_date.terminate_date + ' ' + brand.termination_date.terminate_time);
}
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.pgrst.object+json',
'Prefer': 'return=representation',
...getHubAuthHeader(hubName)
},
body: JSON.stringify(brand)
};
return fetch(`${oakTradeApiUrl}/brand_licence`, requestOptions)
})
const doPatchOne = wrapRequest((brand) => {
if(brand.invitation_date && brand.activation_date && brand.termination_date){
brand.invitation_date = new Date(brand.invitation_date.invite_date+ ' ' + brand.invitation_date.invite_time);
brand.activation_date = new Date(brand.activation_date.activate_date + ' ' + brand.activation_date.activate_time);
brand.termination_date = new Date(brand.termination_date.terminate_date + ' ' + brand.termination_date.terminate_time);
}
const requestOptions = {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.pgrst.object+json',
'Prefer': 'return=representation',
...getHubAuthHeader(hubName)
},
body: JSON.stringify(brand)
};
return fetch(`${oakTradeApiUrl}/brand_licence?id=eq.${brand.id}`, requestOptions)
})
const doFetchOne = wrapRequest((brandLicenseId) => {
const requestOptions = {
method: 'GET',
headers: { 'Content-type': 'application/json', 'Accept': 'application/vnd.pgrst.object+json', ...getHubAuthHeader(hubName) },
};
return fetch(`${oakTradeApiUrl}/brand_licence?id=eq.${brandLicenseId}`, requestOptions);
})
const doDeleteSelected = wrapRequest((brandLicenseId) => {
const requestOptions = {
method: 'DELETE',
headers: {
'Content-Type': 'application/json'
},
};
return fetch(`${oakTradeApiUrl}/brand_licence?id=in.(${brandLicenseId})`, requestOptions)
})
export default {
doFetchOne, doFetchList,
doPostOne, doPatchOne, doDeleteSelected
}