mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
189 lines
5.7 KiB
JavaScript
189 lines
5.7 KiB
JavaScript
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
Vue.use(Vuex)
|
|
import router from '../routes/router.js'
|
|
import loginAPI from '../apis/loginAPI'
|
|
import communityAPI from '../apis/communityAPI'
|
|
|
|
export const store = new Vuex.Store({
|
|
state: {
|
|
session_id: null,
|
|
email: '',
|
|
language: 'en',
|
|
sizeDE: 'normal',
|
|
sizeGB: 'big',
|
|
loginfail: false,
|
|
row_form: true,
|
|
row_check: false,
|
|
row_thx: false,
|
|
user: {
|
|
name: '',
|
|
balance: 0,
|
|
balance_gdt: 0,
|
|
},
|
|
ajaxCreateData: {
|
|
session_id: '',
|
|
email: '',
|
|
amount: 0,
|
|
target_date: '',
|
|
memo: '',
|
|
auto_sign: true,
|
|
},
|
|
transactions: [],
|
|
modals: false,
|
|
optionAxios: {
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
'Access-Control-Allow-Origin': '*',
|
|
'Access-Control-Allow-Credentials': 'true',
|
|
},
|
|
},
|
|
},
|
|
getters: {
|
|
//isLoggedIn: (state /*, getters */) => {
|
|
// return state.session_id !== null;
|
|
//}
|
|
},
|
|
// Syncronous mutation of the state
|
|
mutations: {
|
|
language: (state, language) => {
|
|
//console.log('mutation: language', language)
|
|
state.language = language
|
|
$cookies.set('gdd_lang', language)
|
|
if (state.language == 'de') {
|
|
state.sizeDE = 'big'
|
|
state.sizeGB = 'normal'
|
|
} else {
|
|
state.sizeDE = 'normal'
|
|
state.sizeGB = 'big'
|
|
}
|
|
},
|
|
loginfail: (state, loginfail) => {
|
|
//console.log('mutation: email')
|
|
state.loginfail = loginfail
|
|
},
|
|
email: (state, email) => {
|
|
//console.log('mutation: email')
|
|
state.email = email
|
|
},
|
|
session_id: (state, session_id) => {
|
|
//console.log('mutation: session_id')
|
|
state.session_id = session_id
|
|
},
|
|
user_balance: (state, balance) => {
|
|
//console.log('mutation: user_balance')
|
|
state.user.balance = balance / 10000
|
|
},
|
|
user_balance_gdt: (state, balance) => {
|
|
//console.log('mutation: user_balance_gdt')
|
|
state.user.balance_gdt = balance / 10000
|
|
},
|
|
transactions: (state, transactions) => {
|
|
//console.log('mutation: transactions')
|
|
state.transactions = transactions
|
|
},
|
|
},
|
|
// Asyncronous actions - used for api calls
|
|
actions: {
|
|
login: async ({ dispatch, commit }, data) => {
|
|
const result = await loginAPI.login(data.email, data.password)
|
|
if (result.success) {
|
|
commit('session_id', result.result.data.session_id)
|
|
commit('email', data.email)
|
|
$cookies.set('gdd_session_id', result.result.data.session_id)
|
|
$cookies.set('gdd_u', data.email)
|
|
router.push('/overview')
|
|
} else {
|
|
// Register failed, we perform a logout
|
|
//alert('>>>>> FAIl LOGIN')
|
|
commit('loginfail', true)
|
|
|
|
//dispatch('logout')
|
|
}
|
|
},
|
|
passwordReset: async (data) => {
|
|
//console.log('<<<<<<<<<<< PASSWORT RESET TODO >>>>>>>>>>>', data.email)
|
|
},
|
|
schoepfen: async (data) => {
|
|
// http://localhost/transaction-creations/ajaxCreate
|
|
},
|
|
createUser: async ({ commit, dispatch }, data) => {
|
|
// console.log('action: createUser')
|
|
const result = await loginAPI.create(
|
|
data.email,
|
|
data.first_name,
|
|
data.last_name,
|
|
data.password,
|
|
)
|
|
if (result.success) {
|
|
commit('session_id', result.result.data.session_id)
|
|
commit('email', data.email)
|
|
$cookies.set('gdd_session_id', result.result.data.session_id)
|
|
$cookies.set('gdd_u', data.email)
|
|
router.push('/overview')
|
|
} else {
|
|
// Register failed, we perform a logout
|
|
// console.log('action createUser to logout start')
|
|
dispatch('logout')
|
|
}
|
|
},
|
|
logout: async ({ commit, state }) => {
|
|
//console.log('action: logout')
|
|
// Are we actually logged in?
|
|
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)
|
|
$cookies.remove('gdd_session_id')
|
|
$cookies.remove('gdd_u')
|
|
$cookies.remove('gdd_lang')
|
|
router.push('/Login')
|
|
},
|
|
ajaxCreate: async ({ dispatch, state }) => {
|
|
//console.log('action: ajaxCreate')
|
|
|
|
state.ajaxCreateData.amount = state.ajaxCreateData.amount * 10000
|
|
|
|
const result = await communityAPI.send(
|
|
state.session_id,
|
|
state.ajaxCreateData.email,
|
|
state.ajaxCreateData.amount,
|
|
state.ajaxCreateData.memo,
|
|
)
|
|
console.log(result)
|
|
|
|
if (result.success) {
|
|
console.log('send success')
|
|
} else {
|
|
console.log('send error')
|
|
}
|
|
return result
|
|
|
|
},
|
|
ajaxListTransactions: async ({ commit, dispatch, state }) => {
|
|
// console.log('action: ajaxListTransactions', state.session_id)
|
|
// const result = await communityAPI.transactions(state.session_id)
|
|
},
|
|
accountBalance: async ({ commit, dispatch, state }) => {
|
|
//console.log('action: accountBalance')
|
|
// console.log('action: dispatch', dispatch)
|
|
// console.log('action: state.session_id', state.session_id)
|
|
// console.log(" action: $cookies.get('gdd_session_id') ", $cookies.get("gdd_session_id") )
|
|
// commit('session_id', $cookies.get("gdd_session_id"))
|
|
// commit('email', $cookies.get("gdd_u"))
|
|
const result = await communityAPI.balance($cookies.get('gdd_session_id'))
|
|
//console.log("accountBalance result", result)
|
|
//console.log("aresult.result.data.balance", result.result.data.balance)
|
|
if (result.success) {
|
|
commit('user_balance', result.result.data.balance)
|
|
} else {
|
|
//console.log('action accountBalance to logout start')
|
|
dispatch('logout')
|
|
}
|
|
},
|
|
},
|
|
})
|