UNPKG

commerce-vuex

Version:
66 lines (61 loc) 1.88 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 distributorsService from './distributors.service' const { doFetchOne } = distributorsService 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: { new({ commit }) { commit('inProgress', false); commit('setOne', { name: "", // organizationId: "", inc: "", address: "", postcode: "", city: "", country: "", countryIso3: "", registrationNumber: "", registrationDate: null, taxId: "", avatarUrl: "", splashImageUrl: "", activeProfiles: [] }); }, fetchOne: async ({ commit, dispatch, rootState }, { distributorId, appId, recursive }) => { commit('inProgress', true); commit('setOne', null); const business = await doFetchOne(distributorId); if (business) { commit('setOne', humps(business)); commit('inProgress', false); return humps(business); } if (recursive && appId != rootState.appOne.one.id) { dispatch('appOne/fetchOne', appId, { root: true }); } commit('inProgress', false); }, } }