UNPKG

wholesale-vuex

Version:
92 lines (82 loc) 2.77 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 wholesaleRepService from './wholesale_rep.service' const { doPostOne, doPatchOne, doFetchOne ,doNewBoardNewBrand} = wholesaleRepService 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 }, setList(state, list) { state.OrgList = list; }, }, actions: { new({ commit }) { commit('inProgress', false); commit('setOne', { "salesRepName": "", "salesTerritory": "" }); }, fetchOne: async ({ commit, dispatch, rootState }, { salesRepId, appId, recursive }) => { commit('inProgress', true); try { const salesRep = await doFetchOne(salesRepId); if (salesRep) { commit('setOne', humps(salesRep)); return humps(salesRep); } if (recursive && appId != rootState.appOne.one.id) { dispatch('appOne/fetchOne', appId, { root: true }); } } // eslint-disable-next-line no-useless-catch catch (err) { console.log(err) // throw err } finally { commit('inProgress', false) } }, save: async ({ commit, state }, { appId }) => { commit('inProgress', true); try { if (undefined === state.one.id) { let salesRep = await doPostOne(snakes(Object.assign({}, state.one, { appId: appId }))); commit('setOne', humps(salesRep)); commit('inProgress', false); return ({ new: true, salesRep: humps(salesRep) }); } else { let salesRep = await doPatchOne(snakes(state.one)); commit('inProgress', false); commit('setOne', humps(salesRep)); return ({ update: true, salesRep: humps(salesRep) }); } } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } } }, }