trc-client-core
Version:
The core of the TRC Client
59 lines (45 loc) • 1.86 kB
JavaScript
import {Map, List, fromJS} from 'immutable';
import xhr from 'trc-client-core/src/utils/xhr';
import {createAction} from 'redux-actions';
import createRequestActions from 'trc-client-core/src/utils/createRequestActions';
import {
ADMIN_EXPORT_REGISTRATION_ENDPOINT,
SERVER_INFORMATION_ENDPOINT
} from 'trc-client-core/src/constants/Endpoints';
const EXPORT_REGISTRATION_FETCH = 'trc/admin/EXPORT_REGISTRATION_FETCH';
const EXPORT_REGISTRATION_RECEIVE = 'trc/admin/EXPORT_REGISTRATION_RECEIVE';
const EXPORT_REGISTRATION_ERROR = 'trc/admin/EXPORT_REGISTRATION_ERROR';
export const requestRegistrationData = createRequestActions(
EXPORT_REGISTRATION_FETCH,
EXPORT_REGISTRATION_RECEIVE,
EXPORT_REGISTRATION_ERROR,
query => xhr.get(ADMIN_EXPORT_REGISTRATION_ENDPOINT, query)
);
const SITE_INFORMATION_FETCH = 'trc/admin/SITE_INFORMATION_FETCH';
const SITE_INFORMATION_RECEIVE = 'trc/admin/SITE_INFORMATION_RECEIVE';
const SITE_INFORMATION_ERROR = 'trc/admin/SITE_INFORMATION_ERROR';
export const requestSiteInformation = createRequestActions(
SITE_INFORMATION_FETCH,
SITE_INFORMATION_RECEIVE,
SITE_INFORMATION_ERROR,
query => xhr.get(SERVER_INFORMATION_ENDPOINT)
);
const initialState = Map({
registration: List()
});
export default function AdminDuck(state = initialState, action) {
switch (action.type) {
case EXPORT_REGISTRATION_ERROR:
return state
.set('registrationError', fromJS(action.payload));
case EXPORT_REGISTRATION_RECEIVE:
return state
.set('registration', fromJS(action.payload))
.set('registrationFetching', false);
case SITE_INFORMATION_RECEIVE:
return state
.set('siteInformation', fromJS(action.payload));
default:
return state;
}
}