happy/frontend/src/store.js

54 lines
1.2 KiB
JavaScript

import Vue from 'vue';
import Vuex from "vuex";
import api from './api.js'
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
errs: [],
userInfo: {ID: "", Verification: ""},
moods: [],
},
actions: {
getMoods({commit, state}) {
return api.getMoods(state.userInfo)
.then(resp => {
commit('setMoods', resp.data)
})
},
getNewUser({commit}) {
return api.getNewUser()
.then(resp => {
commit('setUser', resp.data);
})
},
getUserInfo({state}, userInfo) {
if (userInfo)
return api.getUserInfo(userInfo)
else
return api.getUserInfo(state.userInfo)
},
setMood({state}, mood) {
return api.setMood(state.userInfo, mood)
},
},
mutations: {
setUser(state, userInfo) {
state.userInfo = userInfo;
},
setMoods(state, moods) {
state.moods = moods;
},
clearError(state) {
state.errs = []
},
addError(state, err) {
state.errs.push(err)
}
}
});
export default store