commerce-vuex
Version:
Commerce vuex module
72 lines (66 loc) • 2.15 kB
JavaScript
import humps from 'lodash-humps';
import servicePricing from './service_pricing.service';
const { doFetchList } = servicePricing
export default {
namespaced: true,
state: {
list: [],
selected: [],
recordsCount: 0,
inProgress: false,
error: null
},
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;
},
setListCount(state, number) {
state.recordsCount = number;
}
},
actions: {
fetchList: async ({ commit }, { businessEntityId, serviceId, amountLike, appId, pageNumber, limit }) => {
commit('inProgress', true)
try {
const offset = (pageNumber - 1) * limit
const response = await doFetchList({ businessEntityId, serviceId, amountLike, appId, limit, offset })
if (response.range !== null) {
const recordsCount = response.range.split('/')
commit('setListCount', Number(recordsCount[1]))
const list = await response.data
if (list) {
commit('setList', humps((list)))
} else
commit('setList', [])
}
}
// eslint-disable-next-line no-useless-catch
catch (err) {
throw err
}
finally {
commit('inProgress', false)
}
},
/*deleteSelected: async ({ commit }, brandId) => {
commit('inProgress', true);
try {
await doDeleteSelected(brandId);
return ({ deleteSelected: true })
} catch (err) {
throw 'error'
}
finally {
commit('inProgress', false);
}
},*/
}
}