2021-03-18 16:30:04 +01:00

169 lines
5.5 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'
import axios from 'axios'
//import CONFIG from '../config'
export const store = new Vuex.Store({
state: {
session_id: null,
email: null,
user : {
name:"",
balance: 0,
balance_gdt: 0
},
ajaxCreateData: {
session_id : '',
email: "",
amount: 0,
target_date:"2021-02-19T13:25:36+00:00",
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'
}
}
},
// Retrieve a state variable
getters: {
//isLoggedIn: (state /*, getters */) => {
// return state.session_id !== null;
//}
},
// Syncronous mutation of the state
mutations: {
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) => {
// console.log('action: login')
axios.post("http://localhost/login_api/unsecureLogin/",
{"email": data.email, "password":data.password }).then((result) => {
// console.log("store login result", result)
// const result = await loginAPI.login(data.email,data.password)
// console.log('result.data.state',result.data.state)
// console.log('result.data.session_id',result.data.session_id)
if( result.data.state == "success"){
commit('session_id', result.data.session_id)
commit('email', data.email)
$cookies.set('gdd_session_id', result.data.session_id);
$cookies.set('gdd_u', data.email);
router.push('/overview')
} else {
// Register failed, we perform a logout
// console.log('action login to logout start')
dispatch('logout')
}
}, (error) => {
console.log(error);
});
},
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');
router.push('/Login')
},
ajaxCreate: async ({ dispatch, state }) => {
//console.log('action: ajaxCreate')
state.ajaxCreateData.amount = (state.ajaxCreateData.amount)*10000
axios.post("http://localhost/transaction-send-coins/ajaxCreate", state.ajaxCreateData).then((result) => {
//console.log("store ajaxCreate result", result)
if( result.success ){
// TODO
} else {
//dispatch('logout')
}
}, (error) => {
console.log(error);
});
},
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)
if(result.success) {
commit('user_balance', result.result.data.balance)
} else {
console.log('action accountBalance to logout start')
dispatch('logout')
}
}
}
})