API & Client: activities - pagination

+ minor fix
This commit is contained in:
Sam
2018-05-10 23:39:59 +02:00
parent d82a730029
commit 0e9c9105e6
11 changed files with 130 additions and 44 deletions

View File

@ -3,6 +3,15 @@ import mpwoApi from '../mwpoApi/activities'
import { history } from '../index'
import { setError } from './index'
export const endPagination = () => ({
type: 'END_PAGINATION'
})
export const pushActivities = activities => ({
type: 'PUSH_ACTIVITIES',
activities,
})
export const setGpx = gpxContent => ({
type: 'SET_GPX',
gpxContent,
@ -70,3 +79,19 @@ export const editActivity = form => dispatch => mpwoGenericApi
}
})
.catch(error => dispatch(setError(`activities: ${error}`)))
export const getMoreActivities = page => dispatch => mpwoGenericApi
.getData('activities', null, page)
.then(ret => {
if (ret.status === 'success') {
if (ret.data.activities.length > 0) {
dispatch(pushActivities(ret.data.activities))
} else {
dispatch(endPagination())
}
} else {
dispatch(setError(`activities: ${ret.message}`))
}
})
.catch(error => dispatch(setError(`activities: ${error}`)))

View File

@ -13,17 +13,17 @@ export const setError = message => ({
message,
})
export const getData = (target, id = null) => dispatch => {
export const getData = (target, id = null, data = null) => dispatch => {
if (id !== null && isNaN(id)) {
return dispatch(setError(target, `${target}: Incorrect id`))
}
return mpwoApi
.getData(target, id)
.getData(target, id, data)
.then(ret => {
if (ret.status === 'success') {
dispatch(setData(target, ret.data))
} else {
dispatch(setError(`${target}: ${ret.status}`))
dispatch(setError(`${target}: ${ret.message}`))
}
})
.catch(error => dispatch(setError(`${target}: ${error}`)))
@ -50,7 +50,7 @@ export const updateData = (target, data) => dispatch => {
if (ret.status === 'success') {
dispatch(setData(target, ret.data))
} else {
dispatch(setError(`${target}: ${ret.status}`))
dispatch(setError(`${target}: ${ret.message}`))
}
})
.catch(error => dispatch(setError(`${target}: ${error}`)))
@ -66,7 +66,7 @@ export const deleteData = (target, id) => dispatch => {
if (ret.status === 204) {
history.push(`/admin/${target}`)
} else {
dispatch(setError(`${target}: ${ret.status}`))
dispatch(setError(`${target}: ${ret.message}`))
}
})
.catch(error => dispatch(setError(`${target}: ${error}`)))