commerce-vuex
Version:
Commerce vuex module
57 lines (55 loc) • 1.56 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 stripeSession from './stripe_session.service'
const { doPostStripeSession } = stripeSession
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('clearDates')
commit('setOne', {
name: ""
});
},
createStripeSession : async ({ commit }, { sessionParams }) => {
commit('inProgress', true);
try {
const session = await doPostStripeSession({ sessionParams });
if (session) {
commit('setOne', humps(session));
return humps(session)
} else {
commit('setOne', null);
}
}
// eslint-disable-next-line no-useless-catch
catch (err) {
commit('setOne', null);
throw err
}
finally {
commit('inProgress', false)
}
}
},
}