UNPKG

procurement-vuex

Version:
83 lines (75 loc) 4 kB
import { auth, nav } from 'oak-vuex' const { getHubAuthHeader } = auth const { wrapRequest,wrapRequestWithRange} = nav const hubName = process.env.VUE_APP_RETAINHUB_NAME const retainProcurementApiUrl = process.env.VUE_APP_RETAINHUB_PROCUREMENT_API_URL const doFetchList = wrapRequestWithRange(({ emailLike, poNumberLike, filterByStatus, filterByBrand, filterBySeason, filterByRetailteam, sortByDate, sortByFieldName,appId, limit, offset, purchaserBusinessEntityId, filterByCurrency, filterBySalesagentBusinessEntityId, filterByProviderBusinessEntityId, seasonType,filterByOrdersProcessingState }) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Prefer': 'count=exact', ...getHubAuthHeader(hubName) }, }; const params = { app_id: `eq.${appId}`, limit: limit || 100, offset: offset || 0 } if (filterByBrand) params['metadata->>brand_id'] = `ilike.*${filterByBrand}*` if (filterBySeason) params['metadata->>' + `${seasonType}`] = `ilike.*${filterBySeason}*` if (emailLike) params['email'] = `ilike.*${emailLike}*` if (filterByStatus) params['status'] = `eq.${filterByStatus}` if (filterByOrdersProcessingState) params['state'] = `in.(${filterByOrdersProcessingState})` if (poNumberLike) params['po_number'] = `ilike.*${poNumberLike}*` if (sortByDate) params['order'] = `date.desc` if (sortByFieldName) params['order'] = `${sortByFieldName}` if (filterByCurrency) params['order_ccy'] = `ilike.*${filterByCurrency}*` if (purchaserBusinessEntityId) params['purchaser_business_entity_id'] = `eq.${purchaserBusinessEntityId}` if (filterByRetailteam) params['retailteam_id'] = `eq.${filterByRetailteam}` if (filterBySalesagentBusinessEntityId) params['salesagent_business_entity_id'] = `eq.${filterBySalesagentBusinessEntityId}` if (filterByProviderBusinessEntityId) params['provider_business_entity_id'] = `eq.${filterByProviderBusinessEntityId}` const qs = Object.keys(params).map(key => key + '=' + params[key]).join('&'); return fetch(`${retainProcurementApiUrl}/purchase_order_snapshot_view?${qs}`, requestOptions); }) const doFetchOne = wrapRequest(({ purchaseOrderId }) => { const requestOptions = { method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/vnd.pgrst.object+json', ...getHubAuthHeader(hubName) }, }; const params = { } if (purchaseOrderId) params['id'] = `eq.${purchaseOrderId}` const qs = Object.keys(params).map(key => key + '=' + params[key]).join('&'); return fetch(`${retainProcurementApiUrl}/purchase_order_snapshot?${qs}`, requestOptions); }) const doPurchaseOrderApplyChanges = wrapRequest(({ purchaseOrderId, purchaseOrderChangesetId, specs}) => { const requestOptions = { method: 'POST', headers: { 'Content-Type': 'application/json', 'Prefer': 'return=representation', ...getHubAuthHeader(hubName) }, body: JSON.stringify( { purchase_order_id : purchaseOrderId, purchase_order_changeset_id:purchaseOrderChangesetId, specs: specs } ) }; return fetch(`${retainProcurementApiUrl}/rpc/purchase_order_apply_changes`, requestOptions) }) const doPostPurchaseOrderGetSnapshot = wrapRequest(({purchaseOrderId, specs}) => { const requestOptions = { method: 'POST', headers: { 'Content-Type': 'application/json', 'Prefer': 'return=representation', ...getHubAuthHeader(hubName) }, body: JSON.stringify({ "purchase_order_id": purchaseOrderId, "specs": specs }) }; return fetch(`${retainProcurementApiUrl}/rpc/purchase_order_get_snapshot`, requestOptions) }) export default { doFetchOne, doFetchList,doPurchaseOrderApplyChanges,doPostPurchaseOrderGetSnapshot }