commerce-vuex
Version:
Commerce vuex module
76 lines (73 loc) • 2.3 kB
JavaScript
import humps from 'lodash-humps';
import distributorsService from './distributors.service';
const { doFetchList, doFetchDistributorsForBrand } = distributorsService
export default {
namespaced: true,
state: {
list: [],
inProgress: false,
},
mutations: {
inProgress(state, yesOrNo) {
state.inProgress = yesOrNo
},
setList(state, list) {
state.selected = [];
for (let i in state.list) {
state.selected.push(false);
state.selected[i] = false;
}
state.list = list;
}
},
actions: {
fetchList: async ({ commit }) => {
commit('inProgress', true);
try {
const list = await doFetchList();
if (list) {
commit('setList', humps((list)));
commit('inProgress', false);
return humps((list));
} else{
commit('setList', []);
commit('inProgress', false);
}
/*if (recursive && state.list[0].appId != rootState.appOne.one.id) {
dispatch('appOne/fetchOne', state.list[0].appId, { root: true });
}*/
}
// eslint-disable-next-line no-useless-catch
catch (err) {
throw err
}
finally {
commit('inProgress', false)
}
},
fetchDistributorsForBrand: async ({ commit }, { appId, filter }) => {
commit('inProgress', true);
try {
const list = await doFetchDistributorsForBrand({ appId, filter });
if (list) {
commit('setList', humps((list)));
commit('inProgress', false);
return humps((list));
} else{
commit('setList', []);
commit('inProgress', false);
}
/*if (recursive && state.list[0].appId != rootState.appOne.one.id) {
dispatch('appOne/fetchOne', state.list[0].appId, { root: true });
}*/
}
// eslint-disable-next-line no-useless-catch
catch (err) {
throw err
}
finally {
commit('inProgress', false)
}
},
}
}