commerce-vuex
Version:
Commerce vuex module
66 lines (61 loc) • 1.88 kB
JavaScript
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);
},
}
}