UNPKG

wholesale-vuex

Version:
149 lines (134 loc) 6.73 kB
import { auth, nav } from 'oak-vuex' const { getHubAuthHeader } = auth const { wrapRequest, wrapRequestWithRange, wrapEmptyRequest } = nav const hubName = process.env.VUE_APP_RETAINHUB_NAME const retainWholesaleApiUrl = process.env.VUE_APP_RETAINHUB_WHOLESALE_API_URL // const doFetchList = wrapRequestWithRange(({ soNumberLike,filterByStatus,filterBySeason, filterByDistributor, sortByDate, appId, limit, offset, providerBusinessEntityId }) => { // const requestOptions = { // method: 'GET', // headers: { 'Content-type': 'application/json', 'Prefer': 'count=exact', ...getHubAuthHeader(hubName) }, // }; // const params = { app_id:`eq.${appId}`, limit: limit || 50, offset: offset || 0} // if (filterBySeason) params['metadata->>ashta_season'] = `ilike.*${filterBySeason}*` // if (filterByDistributor) params['metadata->>distributor_name'] = `ilike.*${filterByDistributor}*` // //if (emailLike) params['email'] = `ilike.*${emailLike}*` // if (filterByStatus) params['status'] = `eq.${filterByStatus}` // if (soNumberLike) params['so_number'] = `ilike.*${soNumberLike}*` // if (sortByDate) params['order'] = `date.desc` // if(providerBusinessEntityId) params['provider_business_entity_id'] = `eq.${providerBusinessEntityId}` // const qs = Object.keys(params).map(key => key + '=' + params[key]).join('&'); // return fetch(`${retainWholesaleApiUrl}/wholesale_order?${qs}`, requestOptions); // }) const doPostOne = wrapRequest((orderDetails) => { if (orderDetails.billing_address && orderDetails.billing_address.country_iso_3) { let iso3 = orderDetails.billing_address.country_iso_3 delete orderDetails.billing_address.country_iso_3 orderDetails.billing_address.country_iso3 = iso3 } if (orderDetails.shipping_address && orderDetails.shipping_address.country_iso_3) { let iso3 = orderDetails.shipping_address.country_iso_3 delete orderDetails.shipping_address.country_iso_3 orderDetails.shipping_address.country_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(orderDetails) }; return fetch(`${retainWholesaleApiUrl}/commercial_invoice`, requestOptions) }) const doPatchOne = wrapRequest((orderDetails) => { if (orderDetails.billing_address && orderDetails.billing_address.country_iso_3) { let iso3 = orderDetails.billing_address.country_iso_3 delete orderDetails.billing_address.country_iso_3 orderDetails.billing_address.country_iso3 = iso3 } if (orderDetails.shipping_address && orderDetails.shipping_address.country_iso_3) { let iso3 = orderDetails.shipping_address.country_iso_3 delete orderDetails.shipping_address.country_iso_3 orderDetails.shipping_address.country_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(orderDetails) }; return fetch(`${retainWholesaleApiUrl}/commercial_invoice?id=eq.${orderDetails.id}`, requestOptions) }) const doFetchOne = wrapRequest(({ commercialInvoiceId }) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Accept': 'application/vnd.pgrst.object+json', ...getHubAuthHeader(hubName) }, }; return fetch(`${retainWholesaleApiUrl}/commercial_invoice?id=eq.${commercialInvoiceId}&select=*,provider_business_entity(name),purchaser_business_entity(name)`, requestOptions); }) const doDeleteSelected = wrapEmptyRequest(({ commercialInvoiceId }) => { const requestOptions = { method: 'DELETE', headers: { 'Content-Type': 'application/json', ...getHubAuthHeader(hubName) }, }; return fetch(`${retainWholesaleApiUrl}/commercial_invoice?id=in.(${commercialInvoiceId})`, requestOptions) }) const doPostInvoiceListItems = wrapRequest((orderItems) => { for (let i = 0; i < orderItems.length; i++) { if (orderItems[i].variants && orderItems[i].variants.length) { for (let j = 0; j < orderItems[i].variants.length; j++) { if (orderItems[i].variants[j].country_iso_3) { let iso3 = orderItems[i].variants[j].country_iso_3 delete orderItems[i].variants[j].country_iso_3 orderItems[i].variants[j].country_iso3 = iso3 } } } } const requestOptions = { method: 'POST', //'Accept': 'application/vnd.pgrst.object+json', headers: { 'Content-Type': 'application/json', 'Prefer': ['resolution=merge-duplicates', 'return=representation'], ...getHubAuthHeader(hubName) }, body: JSON.stringify(orderItems) }; return fetch(`${retainWholesaleApiUrl}/commercial_invoice_item`, requestOptions) }) const doFetchInvoiceItemsList = wrapRequest(({ appId, commercialInvoiceId }) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', ...getHubAuthHeader(hubName) }, }; const params = { commercial_invoice_id: `eq.${commercialInvoiceId}`, app_id: `eq.${appId}` } const qs = Object.keys(params).map(key => key + '=' + params[key]).join('&'); return fetch(`${retainWholesaleApiUrl}/commercial_invoice_item?${qs}&select=*,provider_business_entity(name, addresses),purchaser_business_entity(name) `, requestOptions); }) const doDeleteSelectedInvoice = wrapEmptyRequest(({ invoiceId }) => { const requestOptions = { method: 'DELETE', headers: { 'Content-Type': 'application/json', ...getHubAuthHeader(hubName) }, }; return fetch(`${retainWholesaleApiUrl}/commercial_invoice?id=in.(${invoiceId})`, requestOptions) }) const doDeleteSelectedInvoiceItems = wrapEmptyRequest(({ invoiceId }) => { const requestOptions = { method: 'DELETE', headers: { 'Content-Type': 'application/json', ...getHubAuthHeader(hubName) }, }; return fetch(`${retainWholesaleApiUrl}/commercial_invoice_item?id=in.(${invoiceId})`, requestOptions) }) export default { doFetchOne, doPostOne, doPatchOne, doDeleteSelected, doFetchInvoiceItemsList, doPostInvoiceListItems, doDeleteSelectedInvoiceItems, doDeleteSelectedInvoice }