mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
communityAPI, balance, create, transactions, some hooks to the frontend
This commit is contained in:
parent
448c274557
commit
a717edb4b0
@ -1,11 +1,69 @@
|
||||
import axios from 'axios';
|
||||
|
||||
// TODO move this
|
||||
const COMMUNITY_API_URL = ''
|
||||
const COMMUNITY_API_STATE_BALANCE_URL = 'http://localhost/state-balances/'
|
||||
const COMMUNITY_API_TRANSACTION_CREATION_URL = 'http://localhost/transaction-creations/'
|
||||
|
||||
const communityAPI = {
|
||||
call: async (param1, param2) => {
|
||||
balance: async (session_id) => {
|
||||
try {
|
||||
const result = await axios.get(COMMUNITY_API_STATE_BALANCE_URL + 'ajaxGetBalance/' + session_id);
|
||||
if(result.status !== 200){
|
||||
throw new Error('HTTP Status Error '+result.status)
|
||||
}
|
||||
if(result.data.state === 'error'){
|
||||
throw new Error(result.data.msg)
|
||||
}
|
||||
if(result.data.state !== 'success'){
|
||||
throw new Error(result.data)
|
||||
}
|
||||
return { success: true, result }
|
||||
} catch(error){
|
||||
return { success: false, result: error}
|
||||
}
|
||||
},
|
||||
transactions: async (session_id) => {
|
||||
try {
|
||||
const result = await axios.get(COMMUNITY_API_STATE_BALANCE_URL + 'ajaxListTransactions/' + session_id);
|
||||
if(result.status !== 200){
|
||||
throw new Error('HTTP Status Error '+result.status)
|
||||
}
|
||||
if(result.data.state === 'error'){
|
||||
throw new Error(result.data.msg)
|
||||
}
|
||||
if(result.data.state !== 'success'){
|
||||
throw new Error(result.data)
|
||||
}
|
||||
return { success: true, result }
|
||||
} catch(error){
|
||||
return { success: false, result: error}
|
||||
}
|
||||
},
|
||||
create: async (session_id, email, amount, memo, target_date = new Date() ) => {
|
||||
const payload = {
|
||||
session_id,
|
||||
email,
|
||||
amount,
|
||||
target_date,
|
||||
memo,
|
||||
auto_sign: true
|
||||
}
|
||||
try {
|
||||
const result = await axios.post(COMMUNITY_API_TRANSACTION_CREATION_URL + 'ajaxCreate/', payload);
|
||||
if(result.status !== 200){
|
||||
throw new Error('HTTP Status Error '+result.status)
|
||||
}
|
||||
if(result.data.state === 'error'){
|
||||
throw new Error(result.data.msg)
|
||||
}
|
||||
if(result.data.state !== 'success'){
|
||||
throw new Error(result.data)
|
||||
}
|
||||
return { success: true, result }
|
||||
} catch(error){
|
||||
return { success: false, result: error}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default communityAPI
|
||||
@ -3,7 +3,7 @@ import Vuex from 'vuex'
|
||||
Vue.use(Vuex)
|
||||
import router from '../routes/router.js'
|
||||
import loginAPI from '../apis/loginAPI'
|
||||
import axios from 'axios'
|
||||
import communityAPI from '../apis/communityAPI'
|
||||
|
||||
export const store = new Vuex.Store({
|
||||
state: {
|
||||
@ -21,6 +21,7 @@ export const store = new Vuex.Store({
|
||||
memo:"AGE",
|
||||
auto_sign: true
|
||||
},
|
||||
transactions: [],
|
||||
modals: false
|
||||
},
|
||||
// Retrieve a state variable
|
||||
@ -39,6 +40,14 @@ export const store = new Vuex.Store({
|
||||
console.log('mutation: session_id')
|
||||
state.session_id = session_id
|
||||
},
|
||||
user_balance: (state,balance) => {
|
||||
console.log('mutation: user_balance')
|
||||
state.user.balance = balance
|
||||
},
|
||||
transactions: (state,transactions) => {
|
||||
console.log('mutation: transactions')
|
||||
state.transactions = transactions
|
||||
}
|
||||
},
|
||||
// Asyncronous actions - used for api calls
|
||||
actions: {
|
||||
@ -84,33 +93,41 @@ export const store = new Vuex.Store({
|
||||
$cookies.remove('gdd_u');
|
||||
router.push('/Login')
|
||||
},
|
||||
ajaxCreate: async (state) => {
|
||||
state.ajaxCreateData.session_id = state.session_id
|
||||
console.log(" state.ajaxCreateData => ", state.ajaxCreateData)
|
||||
axios.post(" http://localhost/transaction-creations/ajaxCreate/", state.ajaxCreateData).then((req) => {
|
||||
console.log("ajaxCreate => ", req)
|
||||
}, (error) => {
|
||||
console.log(error);
|
||||
});
|
||||
ajaxCreate: async ({ dispatch, state }) => {
|
||||
console.log('action: ajaxCreate')
|
||||
console.log(state)
|
||||
const result = await communityAPI.create(
|
||||
state.session_id,
|
||||
state.ajaxCreateData.email,
|
||||
state.ajaxCreateData.amount,
|
||||
state.ajaxCreateData.memo,
|
||||
state.ajaxCreateData.target_date,
|
||||
)
|
||||
if( result.success ){
|
||||
// TODO
|
||||
} else {
|
||||
dispatch('logout')
|
||||
}
|
||||
},
|
||||
ajaxListTransactions: async (state) => {
|
||||
// console.log("ajaxListTransactions => START")
|
||||
axios.get("http://localhost/state-balances/ajaxListTransactions/" + state.session_id).then((req) => {
|
||||
console.log("ajaxListTransactions => ", req)
|
||||
}, (error) => {
|
||||
console.log(error);
|
||||
});
|
||||
ajaxListTransactions: async ({commit, dispatch, state}) => {
|
||||
console.log('action: ajaxListTransactions')
|
||||
const result = await communityAPI.transactions(state.session_id)
|
||||
console.log(result)
|
||||
if(result.success) {
|
||||
commit('transactions', result.result.data.transactions)
|
||||
} else {
|
||||
dispatch('logout')
|
||||
}
|
||||
},
|
||||
accountBalance: async ({ state }) => {
|
||||
//console.log(" => START")
|
||||
state.url = "http://localhost/state-balances/ajaxGetBalance/" + state.session_id
|
||||
//console.log(state.url)
|
||||
axios.get(state.url).then((req) => {
|
||||
console.log("accountBalance => ", req.data.balance)
|
||||
state.user.balance = req.data.balance
|
||||
}, (error) => {
|
||||
console.log(error);
|
||||
});
|
||||
accountBalance: async ({ commit, dispatch, state }) => {
|
||||
console.log('action: accountBalance')
|
||||
const result = await communityAPI.balance(state.session_id)
|
||||
console.log(result)
|
||||
if(result.success) {
|
||||
commit('user_balance', result.result.data.balance)
|
||||
} else {
|
||||
dispatch('logout')
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -48,9 +48,9 @@
|
||||
|
||||
<hr>
|
||||
<h3>User Transactions List</h3>
|
||||
<small>/public/json-example/usertransactions.json</small>
|
||||
<small>this.$store.state.transactions</small>
|
||||
<p>
|
||||
{{usertransactions}}
|
||||
{{this.$store.state.transactions}}
|
||||
</p>
|
||||
|
||||
|
||||
@ -103,7 +103,7 @@
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
UserTransactions() {
|
||||
/*UserTransactions() {
|
||||
axios.get("/json-example/usertransactions.json").then((transactions) => {
|
||||
console.log(transactions);
|
||||
this.usertransactions = transactions.data;
|
||||
@ -111,7 +111,7 @@
|
||||
}, (error) => {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
},*/
|
||||
UserParticitions() {
|
||||
axios.get("/json-example/userparticipation.json").then((participation) => {
|
||||
console.log(participation);
|
||||
@ -135,7 +135,7 @@
|
||||
},
|
||||
mounted() {
|
||||
this.UserData();
|
||||
this.UserTransactions();
|
||||
//this.UserTransactions();
|
||||
this.UserParticitions();
|
||||
},
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user