164 lines
4.2 KiB
JavaScript
164 lines
4.2 KiB
JavaScript
|
import url from '@/plugins/routes'
|
||
|
import axios from 'axios'
|
||
|
|
||
|
const state = {
|
||
|
users: [],
|
||
|
status: []
|
||
|
}
|
||
|
|
||
|
const mutations = {
|
||
|
setUsers: (state, users) => {
|
||
|
state.users = users
|
||
|
},
|
||
|
setStatus: (state, status) => {
|
||
|
state.status = status
|
||
|
|
||
|
},
|
||
|
updateUser: (state, user) => {
|
||
|
let exists = state.users.find(a => {
|
||
|
return a.username === user.username
|
||
|
})
|
||
|
if (exists) {
|
||
|
exists.firstname = user.firstname
|
||
|
exists.lastname = user.lastname
|
||
|
exists.mail = user.mail
|
||
|
exists.statusgroup = user.statusgroup
|
||
|
exists.voting = user.voting
|
||
|
} else {
|
||
|
state.users.push({
|
||
|
username: user.username,
|
||
|
firstname: user.firstname,
|
||
|
lastname: user.lastname,
|
||
|
mail: user.mail,
|
||
|
statusgroup: user.statusgroup,
|
||
|
voting: user.voting
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
updateStatus: (state, status) => {
|
||
|
let exists = state.status.find(a => {
|
||
|
return a.id === status.id
|
||
|
})
|
||
|
if (exists) {
|
||
|
exists.name = status.name
|
||
|
} else {
|
||
|
state.status.push(status)
|
||
|
}
|
||
|
},
|
||
|
deleteStatus: (state, status) => {
|
||
|
let index = state.status.indexOf(
|
||
|
state.status.find(a => {
|
||
|
return a.id === status.id
|
||
|
})
|
||
|
)
|
||
|
state.status.splice(index, 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const actions = {
|
||
|
async getUsers({ commit, rootState, dispatch }) {
|
||
|
try {
|
||
|
const response = await axios.get(url.getUsers, {
|
||
|
headers: { Token: rootState.login.user.accessToken }
|
||
|
})
|
||
|
commit('setUsers', response.data)
|
||
|
} catch (e) {
|
||
|
if (e.response)
|
||
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
||
|
}
|
||
|
},
|
||
|
async getStatus({ commit, rootState, dispatch }) {
|
||
|
try {
|
||
|
const response = await axios.get(url.user.getAllStatus, {
|
||
|
headers: { Token: rootState.login.user.accessToken }
|
||
|
})
|
||
|
commit('setStatus', response.data)
|
||
|
} catch (e) {
|
||
|
if (e.response)
|
||
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
||
|
}
|
||
|
},
|
||
|
async updateStatus({ commit, rootState, dispatch }, data) {
|
||
|
try {
|
||
|
const response = await axios.post(
|
||
|
url.vorstand.um.updateStatus,
|
||
|
{ ...data },
|
||
|
{ headers: { Token: rootState.login.user.accessToken } }
|
||
|
)
|
||
|
commit('updateStatus', response.data)
|
||
|
} catch (e) {
|
||
|
if (e.response)
|
||
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
||
|
}
|
||
|
},
|
||
|
async setStatus({ commit, rootState, dispatch }, data) {
|
||
|
try {
|
||
|
const response = await axios.post(
|
||
|
url.vorstand.um.setStatus,
|
||
|
{ ...data },
|
||
|
{ headers: { Token: rootState.login.user.accessToken } }
|
||
|
)
|
||
|
commit('updateStatus', response.data)
|
||
|
} catch (e) {
|
||
|
if (e.response)
|
||
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
||
|
}
|
||
|
},
|
||
|
async deleteStatus({ commit, rootState, dispatch }, data) {
|
||
|
try {
|
||
|
await axios.post(
|
||
|
url.vorstand.um.deleteStatus,
|
||
|
{ ...data },
|
||
|
{ headers: { Token: rootState.login.user.accessToken } }
|
||
|
)
|
||
|
commit('deleteStatus', data)
|
||
|
} catch (e) {
|
||
|
if (e.response)
|
||
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
||
|
}
|
||
|
},
|
||
|
async updateStatusUser({ commit, rootState, dispatch }, data) {
|
||
|
try {
|
||
|
const response = await axios.post(
|
||
|
url.vorstand.um.updateStatusUser,
|
||
|
{ ...data },
|
||
|
{ headers: { Token: rootState.login.user.accessToken } }
|
||
|
)
|
||
|
commit('updateUser', response.data)
|
||
|
} catch (e) {
|
||
|
if (e.response)
|
||
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
||
|
}
|
||
|
},
|
||
|
async updateVoting({ commit, rootState, dispatch }, data) {
|
||
|
try {
|
||
|
const response = await axios.post(
|
||
|
url.vorstand.um.updateVoting,
|
||
|
{ ...data },
|
||
|
{ headers: { Token: rootState.login.user.accessToken } }
|
||
|
)
|
||
|
commit('updateUser', response.data)
|
||
|
} catch (e) {
|
||
|
if (e.response)
|
||
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const getters = {
|
||
|
users: state => {
|
||
|
return state.users
|
||
|
},
|
||
|
status: state => {
|
||
|
return state.status
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default {
|
||
|
namespaced: true,
|
||
|
state,
|
||
|
mutations,
|
||
|
actions,
|
||
|
getters
|
||
|
}
|