UNPKG

procurement-vuex

Version:
116 lines (114 loc) 3.9 kB
import { snakeCase } from 'lodash' import humps from 'lodash-humps' import createHumps from 'lodash-humps/lib/createHumps' import { getField, updateField } from 'vuex-map-fields' import purchaseOrderChangesetService from './purchase_order_changeset.service' const { doPostOne,doFetchOne, doPatchOne, doPurchaseOrderReflectChangeset, doDeleteChangeset, doPurchaseOrderAutomateWithChangeset } = purchaseOrderChangesetService const snakes = createHumps(snakeCase) export default { namespaced: true, state: { one:null, inProgress: true, }, getters: { getField, }, mutations: { updateField, setOne(state, one) { state.one = one }, inProgress(state, yesOrNo) { state.inProgress = yesOrNo } }, actions: { fetchOne: async ({ commit}, { changesetId }) => { commit('inProgress', true); try { let details = await doFetchOne({ changesetId }); if(details){ commit('setOne', humps(details)) commit('inProgress', false) return ({ data: humps(details) }) }else{ commit('inProgress', false) return ({ data: {} }) } } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, updateChangeset: async ({ commit }, { changesetId, params }) => { commit('inProgress', true); try { let changedData = await doPatchOne({ changesetId, params: snakes(params) }); return (humps(changedData)) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, createChangeset: async ({ commit }, { changesetOne }) => { // debugger commit('inProgress', true); try { let changedData = await doPostOne({ one: snakes(changesetOne) }); return (humps(changedData)) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, reflectChangesToPurchase: async ({ commit }, { wholesaleOrderChangesetId, purchaseOrderId, context }) => { commit('inProgress', true); try { let changedData = await doPurchaseOrderReflectChangeset({ one: snakes({ wholesaleOrderChangesetId, purchaseOrderId, context }) }); return (humps(changedData)) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, deleteCurrentChangeset: async ({ commit }, { changesetId }) => { commit('inProgress', true); try { await doDeleteChangeset({ changesetId }); return ({ deleteSelected: true }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, purchaseOrderAutomateWithChangeset: async ({ commit }, { poId, poChangesetId, specs }) => { commit('inProgress', true) try { const resp = await doPurchaseOrderAutomateWithChangeset({ poId, poChangesetId, specs }) return humps(resp) } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, }, }