53 lines
2.7 KiB
JavaScript
53 lines
2.7 KiB
JavaScript
import serverSideCollectionHandlers from 'Utilities/serverSideCollectionHandlers';
|
|
import pages from 'Utilities/pages';
|
|
import createFetchServerSideCollectionHandler from './createFetchServerSideCollectionHandler';
|
|
import createSetServerSideCollectionPageHandler from './createSetServerSideCollectionPageHandler';
|
|
import createSetServerSideCollectionSortHandler from './createSetServerSideCollectionSortHandler';
|
|
import createSetServerSideCollectionFilterHandler from './createSetServerSideCollectionFilterHandler';
|
|
|
|
function createServerSideCollectionHandlers(section, url, fetchThunk, handlers, fetchDataAugmenter) {
|
|
const actionHandlers = {};
|
|
const fetchHandlerType = handlers[serverSideCollectionHandlers.FETCH];
|
|
const fetchHandler = createFetchServerSideCollectionHandler(section, url, fetchDataAugmenter);
|
|
actionHandlers[fetchHandlerType] = fetchHandler;
|
|
|
|
if (handlers.hasOwnProperty(serverSideCollectionHandlers.FIRST_PAGE)) {
|
|
const handlerType = handlers[serverSideCollectionHandlers.FIRST_PAGE];
|
|
actionHandlers[handlerType] = createSetServerSideCollectionPageHandler(section, pages.FIRST, fetchThunk);
|
|
}
|
|
|
|
if (handlers.hasOwnProperty(serverSideCollectionHandlers.PREVIOUS_PAGE)) {
|
|
const handlerType = handlers[serverSideCollectionHandlers.PREVIOUS_PAGE];
|
|
actionHandlers[handlerType] = createSetServerSideCollectionPageHandler(section, pages.PREVIOUS, fetchThunk);
|
|
}
|
|
|
|
if (handlers.hasOwnProperty(serverSideCollectionHandlers.NEXT_PAGE)) {
|
|
const handlerType = handlers[serverSideCollectionHandlers.NEXT_PAGE];
|
|
actionHandlers[handlerType] = createSetServerSideCollectionPageHandler(section, pages.NEXT, fetchThunk);
|
|
}
|
|
|
|
if (handlers.hasOwnProperty(serverSideCollectionHandlers.LAST_PAGE)) {
|
|
const handlerType = handlers[serverSideCollectionHandlers.LAST_PAGE];
|
|
actionHandlers[handlerType] = createSetServerSideCollectionPageHandler(section, pages.LAST, fetchThunk);
|
|
}
|
|
|
|
if (handlers.hasOwnProperty(serverSideCollectionHandlers.EXACT_PAGE)) {
|
|
const handlerType = handlers[serverSideCollectionHandlers.EXACT_PAGE];
|
|
actionHandlers[handlerType] = createSetServerSideCollectionPageHandler(section, pages.EXACT, fetchThunk);
|
|
}
|
|
|
|
if (handlers.hasOwnProperty(serverSideCollectionHandlers.SORT)) {
|
|
const handlerType = handlers[serverSideCollectionHandlers.SORT];
|
|
actionHandlers[handlerType] = createSetServerSideCollectionSortHandler(section, fetchThunk);
|
|
}
|
|
|
|
if (handlers.hasOwnProperty(serverSideCollectionHandlers.FILTER)) {
|
|
const handlerType = handlers[serverSideCollectionHandlers.FILTER];
|
|
actionHandlers[handlerType] = createSetServerSideCollectionFilterHandler(section, fetchThunk);
|
|
}
|
|
|
|
return actionHandlers;
|
|
}
|
|
|
|
export default createServerSideCollectionHandlers;
|