mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
83 lines
2.1 KiB
JavaScript
83 lines
2.1 KiB
JavaScript
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
Vue.use(Vuex)
|
|
import loginAPI from '../apis/loginAPI'
|
|
import communityAPI from '../apis/communityAPI'
|
|
import createPersistedState from 'vuex-persistedstate'
|
|
|
|
export const store = new Vuex.Store({
|
|
plugins: [
|
|
createPersistedState({
|
|
storage: window.sessionStorage,
|
|
}),
|
|
],
|
|
state: {
|
|
session_id: null,
|
|
email: '',
|
|
language: 'en',
|
|
user: {
|
|
name: '',
|
|
balance: 0,
|
|
balance_gdt: 0,
|
|
},
|
|
modals: false,
|
|
optionAxios: {
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
'Access-Control-Allow-Origin': '*',
|
|
'Access-Control-Allow-Credentials': 'true',
|
|
},
|
|
},
|
|
},
|
|
getters: {},
|
|
// Syncronous mutation of the state
|
|
mutations: {
|
|
language: (state, language) => {
|
|
state.language = language
|
|
},
|
|
email: (state, email) => {
|
|
state.email = email
|
|
},
|
|
session_id: (state, session_id) => {
|
|
state.session_id = session_id
|
|
},
|
|
user_balance: (state, balance) => {
|
|
state.user.balance = balance / 10000
|
|
},
|
|
user_balance_gdt: (state, balance) => {
|
|
state.user.balance_gdt = balance / 10000
|
|
},
|
|
},
|
|
actions: {
|
|
login: async ({ dispatch, commit }, data) => {
|
|
commit('session_id', data.session_id)
|
|
commit('email', data.email)
|
|
},
|
|
passwordReset: async (data) => {},
|
|
schoepfen: async (data) => {
|
|
// http://localhost/transaction-creations/ajaxCreate
|
|
},
|
|
createUser: async ({ commit, dispatch }, data) => {
|
|
commit('session_id', data.session_id)
|
|
commit('email', data.email)
|
|
},
|
|
logout: async ({ commit, state }) => {
|
|
if (state.session_id) {
|
|
const result = await loginAPI.logout(state.session_id)
|
|
// The result can be error, but thats ok with us
|
|
}
|
|
commit('session_id', null)
|
|
commit('email', null)
|
|
sessionStorage.clear()
|
|
},
|
|
accountBalance: async ({ commit, dispatch, state }) => {
|
|
const result = await communityAPI.balance(state.session_id)
|
|
if (result.success) {
|
|
commit('user_balance', result.result.data.balance)
|
|
} else {
|
|
//dispatch('logout')
|
|
}
|
|
},
|
|
},
|
|
})
|