flaschengeist-frontend/src/store/modules/barUsers.js

116 lines
4.1 KiB
JavaScript
Raw Normal View History

2020-01-14 18:57:45 +00:00
import axios from 'axios';
import url from '@/plugins/routes';
const state = {
2020-01-14 18:57:45 +00:00
users: [],
allUsers: []
};
const mutations = {
2020-01-14 18:57:45 +00:00
setAllUsers: (state, users) => {
state.allUsers = []
state.allUsers = users
for (let i = 0; i < state.allUsers.length; i++) {
state.allUsers[i].fullName = state.allUsers[i].firstname + " " + state.allUsers[i].lastname
}
},
setUsers: (state, users) => {
// eslint-disable-next-line no-console
console.log(users)
for (let user in users) {
// eslint-disable-next-line no-console
console.log(user)
let existuser = state.users.find(a => {return user === a.username})
if (existuser) {
existuser.sername = users[user].username
existuser.firstname = users[user].firstname
existuser.lastname = users[user].lastname
existuser.locked = users[user].locked
existuser.amount = users[user].amount
existuser.type = users[user].type
} else {
state.users.push({
username: users[user].username,
firstname: users[user].firstname,
lastname: users[user].lastname,
locked: users[user].locked,
amount: users[user].amount,
type: users[user].type
})
}
}
// eslint-disable-next-line no-console
console.log(state.users)
mutations.sortUsers(state)
},
sortUsers: (state) => {
state.users = state.users.sort((a,b) => {
if (a.lastname > b.lastname) return 1
if (a.lastname < b.lastname) return -1
if (a.firstname > b.firstname) return 1
if (a.firstname < b.firstname) return -1
return 0
})
},
};
const actions = {
// eslint-disable-next-line no-unused-vars
async getUsers({commit, rootState, dispatch}) {
2020-01-14 18:57:45 +00:00
try {
const response = await axios.get(url.bar, {headers: {Token: rootState.login.user.accessToken}})
// eslint-disable-next-line no-console
console.log(response.data)
commit('setUsers', response.data)
} catch (e) {
if (e.response) if (e.response.status === 401) dispatch('logout', null, {root: true})
}
},
async addAmount({commit, rootState, dispatch}, data) {
try {
const response = await axios.post(url.barAddAmount, {userId: data.username, amount: data.amount}, {headers: {Token: rootState.login.user.accessToken}})
commit('setUsers', {[response.data.username]: response.data})
} catch (e) {
if (e.response) if (e.response.status === 401) dispatch('logout', null, {root: true})
}
},
async addCreditList({commit, rootState, dispatch}, data) {
try {
const response = await axios.post(url.barGetUser, {userId: data.username}, {headers: {Token: rootState.login.user.accessToken}})
commit('setUsers', {[response.data.username]: response.data})
} catch (e) {
if (e.response) if (e.response.status === 401) dispatch('logout', null, {root: true})
}
},
async getAllUsers({commit, rootState, dispatch}) {
// eslint-disable-next-line no-console
console.log('hier bin ich')
try {
const response = await axios.post(url.searchUser, {searchString: ""}, {headers: {Token: rootState.login.user.accessToken}})
// eslint-disable-next-line no-console
console.log(response)
commit('setAllUsers', response.data)
} catch (e) {
// eslint-disable-next-line no-console
console.log(e)
if (e.response) if (e.response.data === 401) dispatch('logout', null, {root: true})
}
}
};
const getters = {
2020-01-14 18:57:45 +00:00
users: (state) => { return state.users },
allUsers: (state) => { return state.allUsers }
};
export default {
namespaced: true,
state,
mutations,
actions,
getters
}