FitTrackee/mpwo_client/src/actions/index.js

50 lines
1.1 KiB
JavaScript
Raw Normal View History

2018-04-29 18:23:46 +02:00
import mpwoApi from '../mwpoApi/index'
export const setData = (target, data) => ({
type: 'SET_DATA',
data,
target,
})
2018-04-30 20:08:18 +02:00
export const setError = message => ({
2018-04-29 18:23:46 +02:00
type: 'SET_ERROR',
2018-04-30 20:08:18 +02:00
message,
2018-04-29 18:23:46 +02:00
})
2018-04-30 20:08:18 +02:00
export function getData(target, id = null) {
2018-04-29 18:23:46 +02:00
return function(dispatch) {
2018-04-30 20:08:18 +02:00
if (id !== null && isNaN(id)) {
return dispatch(setError(target, `${target}: Incorrect id`))
}
2018-04-29 18:23:46 +02:00
return mpwoApi
2018-04-30 20:08:18 +02:00
.getData(target, id)
2018-04-29 18:23:46 +02:00
.then(ret => {
if (ret.status === 'success') {
dispatch(setData(target, ret.data))
} else {
2018-04-30 20:08:18 +02:00
dispatch(setError(`${target}: ${ret.status}`))
2018-04-29 18:23:46 +02:00
}
})
2018-04-30 20:08:18 +02:00
.catch(error => dispatch(setError(`${target}: ${error}`)))
}
}
export function updateData(target, data) {
return function(dispatch) {
if (isNaN(data.id)) {
return dispatch(setError(target, `${target}: Incorrect id`))
}
return mpwoApi
.updateData(target, data)
.then(ret => {
if (ret.status === 'success') {
dispatch(setData(target, ret.data))
} else {
dispatch(setError(`${target}: ${ret.status}`))
}
2018-04-29 18:23:46 +02:00
})
2018-04-30 20:08:18 +02:00
.catch(error => dispatch(setError(`${target}: ${error}`)))
2018-04-29 18:23:46 +02:00
}
}