procurement-vuex
Version:
Commerce vuex module
106 lines (95 loc) • 3.77 kB
JavaScript
import { auth, nav } from 'oak-vuex'
const { getHubAuthHeader } = auth
const { wrapRequest,wrapEmptyRequest} = nav
const hubName = process.env.VUE_APP_RETAINHUB_NAME
const retainProcurementApiUrl = process.env.VUE_APP_RETAINHUB_PROCUREMENT_API_URL
const doFetchList = wrapRequest(({ appId, purchaseOrderId, sortByDate }) => {
const requestOptions = {
method: 'GET',
headers: {
'Content-Type': 'application/json',
...getHubAuthHeader(hubName)
}
};
const params = { app_id:`eq.${appId}`, purchase_order_id: `eq.${ purchaseOrderId }` }
if (sortByDate) params['order'] = `created_at`
const qs = Object.keys(params).map(key => key + '=' + params[key]).join('&');
return fetch(`${retainProcurementApiUrl}/purchase_order_changeset?${qs}`, requestOptions)
})
const doPostOne = wrapRequest(({one}) => {
// debugger
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Prefer': 'return=representation',
'Accept': 'application/vnd.pgrst.object+json', ...getHubAuthHeader(hubName)
},
body: JSON.stringify(
one
)
};
return fetch(`${retainProcurementApiUrl}/purchase_order_changeset`, requestOptions)
})
const doFetchOne = wrapRequest(({ changesetId }) => {
const requestOptions = {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.pgrst.object+json',
...getHubAuthHeader(hubName)
}
};
return fetch(`${retainProcurementApiUrl}/purchase_order_changeset?id=eq.${changesetId}`, requestOptions)
})
const doPatchOne = wrapRequest(({params, changesetId}) => {
const requestOptions = {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.pgrst.object+json',
'Prefer': 'return=representation',
...getHubAuthHeader(hubName)
},
body: JSON.stringify(params)
}
return fetch(`${retainProcurementApiUrl}/purchase_order_changeset?id=eq.${changesetId}`, requestOptions)
})
const doPurchaseOrderReflectChangeset = wrapRequest(({ one }) => {
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json', ...getHubAuthHeader(hubName)
},
body: JSON.stringify(one)
};
console.log("do PurchaseOrder reflect changeset requestOptions", requestOptions)
let url = `${retainProcurementApiUrl}/rpc/purchase_order_reflect_changeset`;
console.log("url", url);
return fetch(url, requestOptions)
})
const doDeleteChangeset = wrapEmptyRequest(({ changesetId }) => {
const requestOptions = {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
...getHubAuthHeader(hubName)
},
};
return fetch(`${retainProcurementApiUrl}/purchase_order_changeset?id=eq.${changesetId}`, requestOptions)
})
const doPurchaseOrderAutomateWithChangeset = wrapRequest(({ poId, poChangesetId, specs }) => {
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json', ...getHubAuthHeader(hubName)
},
body: JSON.stringify({
purchase_order_id: poId, purchase_order_changeset_id: poChangesetId, specs: { document_id: specs.documentId, document_url: specs.documentUrl }
})
};
return fetch(`${retainProcurementApiUrl}/rpc/purchase_order_automate_with_changeset`, requestOptions)
})
export default {
doPostOne,doFetchList,doFetchOne,doPatchOne, doPurchaseOrderReflectChangeset,doDeleteChangeset, doPurchaseOrderAutomateWithChangeset
}