UNPKG

commerce-vuex

Version:
187 lines (174 loc) 6.26 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 brandService from './brand.service' const { doPostOne, doPatchOne, doFetchOne ,doCreateNewBrandAndNewOwner, doPostBoardNewBrand,doDeleteSelected,doPostCreateNewBrandServiceOwner,doPostMergeAllRpc} = brandService const snakes = createHumps(snakeCase) export default { namespaced: true, state: { one: null, inProgress: true, OrgList: [], }, 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', { "name": "", "logoUrl": "", "ownerId": "", "splashImageUrl":"", "description":"" }); }, fetchOne: async ({ commit, dispatch, rootState }, { brandId, appId, recursive }) => { commit('inProgress', true); try { const brand = await doFetchOne(brandId); if (brand) { commit('setOne', humps(brand)); return humps(brand); } 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, newBrandId }) => { commit('inProgress', true); try { if (undefined === state.one.id) { let newBrand = newBrandId ? snakes(Object.assign({}, state.one, {id : newBrandId,appId: appId})) : snakes(Object.assign({}, state.one, { appId: appId })) let brand = await doPostOne({newBrand}); commit('setOne', humps(brand)); commit('inProgress', false); return ({ new: true, brand: humps(brand) }); } else { let brand = await doPatchOne(snakes(state.one)); commit('inProgress', false); commit('setOne', humps(brand)); return ({ update: true, brand: humps(brand) }); } } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, cloneNewBrandOne: async ({ commit, state }, { newBrand }) => { commit('inProgress', true); try { let brand = await doPostOne({newBrand}); commit('inProgress', false); return ({ new: true, brand: humps(brand) }); } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, createNewBrand: async ({ commit, state }, { appId,name,activeProfiles,businessEntityId}) => { commit('inProgress', true); try { let brand = await doCreateNewBrandAndNewOwner({appId,name ,activeProfiles,businessEntityId}); commit('inProgress', false); return (brand); } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, createNewBrandServiceOwner: async ({ commit }, {brandDetails,ownerDetails,ownerServices}) => { commit('inProgress', true); try { let brand = await doPostCreateNewBrandServiceOwner({brandDetails,ownerDetails,ownerServices}); commit('inProgress', false); return (brand); } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, cloneBoardNewBrand: async ({ commit }, {brandDetails,ownerDetails,ownerServices}) => { commit('inProgress', true); try { let brand = await doPostBoardNewBrand({brandDetails,ownerDetails,ownerServices}); commit('inProgress', false); return (brand); } // 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) { return ({ deleteSelected: false }) } finally { commit('inProgress', false); } }, mergeAllBrands: async ({ commit }, {appId,specs}) => { commit('inProgress', true); try { let brand = await doPostMergeAllRpc({appId,specs}); commit('inProgress', false); return (brand); } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, }, }