2021-03-26 11:10:16 +01:00

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')
}
},
},
})