Files
crater/resources/assets/js/store/modules/item/actions.js
Mohit Panjwani 89ee58590c build version 400
2020-12-02 17:54:08 +05:30

181 lines
4.5 KiB
JavaScript

import * as types from './mutation-types'
export const fetchItems = ({ commit, dispatch, state }, params) => {
return new Promise((resolve, reject) => {
window.axios
.get(`/api/v1/items`, { params })
.then((response) => {
commit(types.BOOTSTRAP_ITEMS, response.data.items.data)
commit(types.SET_TOTAL_ITEMS, response.data.itemTotalCount)
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const fetchItem = ({ commit, dispatch }, id) => {
return new Promise((resolve, reject) => {
window.axios
.get(`/api/v1/items/${id}`)
.then((response) => {
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const addItem = ({ commit, dispatch, state }, data) => {
return new Promise((resolve, reject) => {
window.axios
.post('/api/v1/items', data)
.then((response) => {
commit(types.ADD_ITEM, response.data)
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const updateItem = ({ commit, dispatch, state }, data) => {
return new Promise((resolve, reject) => {
window.axios
.put(`/api/v1/items/${data.id}`, data)
.then((response) => {
commit(types.UPDATE_ITEM, response.data)
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const deleteItem = ({ commit, dispatch, state }, id) => {
return new Promise((resolve, reject) => {
window.axios
.post(`/api/v1/items/delete`, id)
.then((response) => {
commit(types.DELETE_ITEM, id)
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const deleteMultipleItems = ({ commit, dispatch, state }, id) => {
return new Promise((resolve, reject) => {
window.axios
.post(`/api/v1/items/delete`, { ids: state.selectedItems })
.then((response) => {
commit(types.DELETE_MULTIPLE_ITEMS, state.selectedItems)
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const setSelectAllState = ({ commit, dispatch, state }, data) => {
commit(types.SET_SELECT_ALL_STATE, data)
}
export const selectAllItems = ({ commit, dispatch, state }) => {
if (state.selectedItems.length === state.items.length) {
commit(types.SET_SELECTED_ITEMS, [])
commit(types.SET_SELECT_ALL_STATE, false)
} else {
let allItemIds = state.items.map((item) => item.id)
commit(types.SET_SELECTED_ITEMS, allItemIds)
commit(types.SET_SELECT_ALL_STATE, true)
}
}
export const selectItem = ({ commit, dispatch, state }, data) => {
commit(types.SET_SELECTED_ITEMS, data)
if (state.selectedItems.length === state.items.length) {
commit(types.SET_SELECT_ALL_STATE, true)
} else {
commit(types.SET_SELECT_ALL_STATE, false)
}
}
export const addItemUnit = ({ commit, dispatch, state }, data) => {
return new Promise((resolve, reject) => {
window.axios
.post(`/api/v1/units`, data)
.then((response) => {
commit(types.ADD_ITEM_UNIT, response.data)
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const updateItemUnit = ({ commit, dispatch, state }, data) => {
return new Promise((resolve, reject) => {
window.axios
.put(`/api/v1/units/${data.id}`, data)
.then((response) => {
commit(types.UPDATE_ITEM_UNIT, response.data.unit)
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const fetchItemUnits = ({ commit, dispatch, state }, params) => {
return new Promise((resolve, reject) => {
window.axios
.get(`/api/v1/units`, { params })
.then((response) => {
commit(types.SET_ITEM_UNITS, response.data.units.data)
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const fatchItemUnit = ({ commit, dispatch, state }, id) => {
return new Promise((resolve, reject) => {
window.axios
.get(`/api/v1/units/${id}`)
.then((response) => {
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}
export const deleteItemUnit = ({ commit, dispatch, state }, id) => {
return new Promise((resolve, reject) => {
window.axios
.delete(`/api/v1/units/${id}`)
.then((response) => {
if (!response.data.error) {
commit(types.DELETE_ITEM_UNIT, id)
}
resolve(response)
})
.catch((err) => {
reject(err)
})
})
}