UNPKG

commerce-vuex

Version:
69 lines (67 loc) 2.69 kB
import { doPostOne, doPatchOne, doFetchOne } from '@/services/brand_license.service'; import { terminateDateFormate, inviteDateFormate,activateDateFormate } from '@/services/util.service'; import { getField, updateField } from 'vuex-map-fields'; import createHumps from 'lodash-humps/lib/createHumps'; import { snakeCase } from 'lodash'; const snakes = createHumps(snakeCase); import humps from 'lodash-humps'; export default { namespaced: true, state: { one: null, inProgress: true, }, getters: { getField, }, mutations: { updateField, setOne(state, one) { state.one = one; state.one.invitationDate = one.invitationDate ? inviteDateFormate(one.invitationDate) :{}; state.one.activationDate = one.activationDate ? activateDateFormate(one.activationDate) :{}; state.one.terminationDate = one.terminationDate ? terminateDateFormate(one.terminationDate):{}; }, inProgress(state, yesOrNo) { state.inProgress = yesOrNo }, }, actions: { new({ commit }) { commit('inProgress', false); commit('setOne', { "permissions": "", "agentOrgId":"", "invitationDate":{ "inviteTime":'', "inviteDate":''}, "activationDate":{ "activateTime":'', "activateDate":''}, "terminationDate":{ "terminateTime":'', "terminateDate":''}, }); }, fetchOne: async ({ commit, dispatch, rootState }, { brandLicenseId,appId,recursive }) => { commit('inProgress', true); const brandLicense = await doFetchOne(brandLicenseId); if (brandLicense) { commit('setOne', humps(brandLicense)); } if (recursive && appId != rootState.appOne.one.id) { dispatch('appOne/fetchOne', appId, { root: true }); } commit('inProgress', false); }, save: async ({ commit, state }, {agentOrgId,brandId, appId }) => { commit('inProgress', true); if (undefined === state.one.id) { await doPostOne(snakes(Object.assign({}, state.one, { brandId: brandId,agentOrgId: agentOrgId, appId: appId }))); commit('inProgress', false); return ({ new: true }); } else { await doPatchOne(snakes(state.one)); commit('inProgress', false); return ({ update: true }); } }, }, }