134 lines
3.8 KiB
JavaScript
134 lines
3.8 KiB
JavaScript
import url from '@/plugins/routes'
|
|
import axios from 'axios'
|
|
const timeout = 20000
|
|
const state = {
|
|
workgroupsLoading: false,
|
|
workgroups: []
|
|
}
|
|
|
|
const mutations = {
|
|
setWorkgroups: (state, workgroups) => {
|
|
state.workgroups = workgroups
|
|
},
|
|
updateWorkgroup: (state, workgroup) => {
|
|
console.log('workgroup is', workgroup)
|
|
let exists = state.workgroups.find(a => {
|
|
return a.id === workgroup.id
|
|
})
|
|
console.log('exists is', exists)
|
|
if (exists) {
|
|
exists.name = workgroup.name
|
|
exists.boss = workgroup.boss
|
|
} else {
|
|
state.workgroups.push(workgroup)
|
|
}
|
|
},
|
|
deleteWorkgroup: (state, workergroup) => {
|
|
let index = state.workgroups.indexOf(
|
|
state.workgroups.find(a => {
|
|
return a.id === workergroup.id
|
|
})
|
|
)
|
|
state.workgroups.splice(index, 1)
|
|
},
|
|
setWorkgroupLoading: (state, value) => {
|
|
state.workgroupsLoading = value
|
|
}
|
|
}
|
|
|
|
const actions = {
|
|
async getAllWorkgroups({ commit, rootState, dispatch }) {
|
|
try {
|
|
commit('setWorkgroupLoading', true)
|
|
const response = await axios.get(url.vorstand.wm.getAllWorkgroups, {
|
|
headers: { Token: rootState.login.user.accessToken },
|
|
timeout
|
|
})
|
|
commit('setWorkgroups', response.data)
|
|
commit('setWorkgroupLoading', false)
|
|
dispatch('getLifeTime', null, { root: true })
|
|
} catch (e) {
|
|
if (e.message == 'Network Error') {
|
|
dispatch('connectionError/addError', null, { root: true })
|
|
}
|
|
commit('setWorkgroupLoading', false)
|
|
if (e.response)
|
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
|
}
|
|
},
|
|
async setWorkgroup({ commit, rootState, dispatch }, data) {
|
|
try {
|
|
commit('setWorkgroupLoading', true)
|
|
const response = await axios.put(
|
|
url.vorstand.wm.workgroup,
|
|
{ ...data },
|
|
{ headers: { Token: rootState.login.user.accessToken }, timeout }
|
|
)
|
|
commit('updateWorkgroup', response.data)
|
|
commit('setWorkgroupLoading', false)
|
|
dispatch('getLifeTime', null, { root: true })
|
|
} catch (e) {
|
|
if (e.message == 'Network Error') {
|
|
dispatch('connectionError/addError', null, { root: true })
|
|
}
|
|
if (e.response)
|
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
|
}
|
|
},
|
|
async updateWorkgroup({ commit, rootState, dispatch }, data) {
|
|
try {
|
|
commit('setWorkgroupLoading', true)
|
|
const repsonse = await axios.post(
|
|
url.vorstand.wm.workgroup,
|
|
{ ...data },
|
|
{ headers: { Token: rootState.login.user.accessToken }, timeout }
|
|
)
|
|
commit('updateWorkgroup', repsonse.data)
|
|
commit('setWorkgroupLoading', false)
|
|
dispatch('getLifeTime', null, { root: true })
|
|
} catch (e) {
|
|
if (e.message == 'Network Error') {
|
|
dispatch('connectionError/addError', null, { root: true })
|
|
}
|
|
if (e.response)
|
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
|
}
|
|
},
|
|
async deleteWorkgroup({ commit, rootState, dispatch }, data) {
|
|
try {
|
|
commit('setWorkgroupLoading', true)
|
|
await axios.post(
|
|
url.vorstand.wm.deleteWorkgroup,
|
|
{ ...data },
|
|
{ headers: { Token: rootState.login.user.accessToken }, timeout }
|
|
)
|
|
commit('deleteWorkgroup', data)
|
|
commit('setWorkgroupLoading', false)
|
|
dispatch('getLifeTime', null, { root: true })
|
|
} catch (e) {
|
|
if (e.message == 'Network Error') {
|
|
dispatch('connectionError/addError', null, { root: true })
|
|
}
|
|
if (e.response)
|
|
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
|
}
|
|
}
|
|
}
|
|
|
|
const getters = {
|
|
workgroups: state => {
|
|
return state.workgroups
|
|
},
|
|
workgroupLoading: state => {
|
|
return state.workgroupsLoading
|
|
}
|
|
}
|
|
|
|
export default {
|
|
namespaced: true,
|
|
state,
|
|
mutations,
|
|
actions,
|
|
getters
|
|
}
|