import axios from 'axios' import url from '@/plugins/routes' const state = { users: [], allUsers: [] } const mutations = { 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 }) { 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 = { users: state => { return state.users }, allUsers: state => { return state.allUsers } } export default { namespaced: true, state, mutations, actions, getters }