mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-30 13:11:08 -04:00
120 lines
3.1 KiB
JavaScript
120 lines
3.1 KiB
JavaScript
import * as types from './mutation-types'
|
|
import * as searchTypes from '../search/mutation-types'
|
|
|
|
export const fetchUsers = ({ commit, dispatch, state }, params) => {
|
|
return new Promise((resolve, reject) => {
|
|
window.axios
|
|
.get(`/api/v1/users`, { params })
|
|
.then((response) => {
|
|
commit(types.BOOTSTRAP_USERS, response.data.users.data)
|
|
commit(types.SET_TOTAL_USERS, response.data.users.total)
|
|
commit(
|
|
'search/' + searchTypes.SET_USER_LISTS,
|
|
response.data.users.data,
|
|
{ root: true }
|
|
)
|
|
resolve(response)
|
|
})
|
|
.catch((err) => {
|
|
reject(err)
|
|
})
|
|
})
|
|
}
|
|
|
|
export const fetchUser = ({ commit, dispatch }, id) => {
|
|
return new Promise((resolve, reject) => {
|
|
window.axios
|
|
.get(`/api/v1/users/${id}`)
|
|
.then((response) => {
|
|
resolve(response)
|
|
})
|
|
.catch((err) => {
|
|
reject(err)
|
|
})
|
|
})
|
|
}
|
|
|
|
export const addUser = ({ commit, dispatch, state }, data) => {
|
|
return new Promise((resolve, reject) => {
|
|
window.axios
|
|
.post('/api/v1/users', data)
|
|
.then((response) => {
|
|
commit(types.ADD_USER, response.data)
|
|
resolve(response)
|
|
})
|
|
.catch((err) => {
|
|
reject(err)
|
|
})
|
|
})
|
|
}
|
|
|
|
export const updateUser = ({ commit, dispatch, state }, data) => {
|
|
return new Promise((resolve, reject) => {
|
|
window.axios
|
|
.put(`/api/v1/users/${data.id}`, data)
|
|
.then((response) => {
|
|
if (response.data.success) {
|
|
commit(types.UPDATE_USER, response.data)
|
|
}
|
|
resolve(response)
|
|
})
|
|
.catch((err) => {
|
|
reject(err)
|
|
})
|
|
})
|
|
}
|
|
|
|
export const deleteUser = ({ commit, dispatch, state }, user) => {
|
|
return new Promise((resolve, reject) => {
|
|
window.axios
|
|
.post(`/api/v1/users/delete`, {
|
|
users: user,
|
|
})
|
|
.then((response) => {
|
|
commit(types.DELETE_USER, user)
|
|
resolve(response)
|
|
})
|
|
.catch((err) => {
|
|
reject(err)
|
|
})
|
|
})
|
|
}
|
|
|
|
export const deleteMultipleUsers = ({ commit, dispatch, state }, id) => {
|
|
return new Promise((resolve, reject) => {
|
|
window.axios
|
|
.post(`/api/v1/users/delete`, { users: state.selectedUsers })
|
|
.then((response) => {
|
|
commit(types.DELETE_MULTIPLE_USERS, state.selectedUsers)
|
|
resolve(response)
|
|
})
|
|
.catch((err) => {
|
|
reject(err)
|
|
})
|
|
})
|
|
}
|
|
|
|
export const setSelectAllState = ({ commit, dispatch, state }, data) => {
|
|
commit(types.SET_SELECT_ALL_STATE, data)
|
|
}
|
|
|
|
export const selectAllUsers = ({ commit, dispatch, state }) => {
|
|
if (state.selectedUsers.length === state.users.length) {
|
|
commit(types.SET_SELECTED_USERS, [])
|
|
commit(types.SET_SELECT_ALL_STATE, false)
|
|
} else {
|
|
let allUserIds = state.users.map((user) => user.id)
|
|
commit(types.SET_SELECTED_USERS, allUserIds)
|
|
commit(types.SET_SELECT_ALL_STATE, true)
|
|
}
|
|
}
|
|
|
|
export const selectedUser = ({ commit, dispatch, state }, data) => {
|
|
commit(types.SET_SELECTED_USERS, data)
|
|
if (state.selectedUsers.length === state.users.length) {
|
|
commit(types.SET_SELECT_ALL_STATE, true)
|
|
} else {
|
|
commit(types.SET_SELECT_ALL_STATE, false)
|
|
}
|
|
}
|