UNPKG

trc-client-core

Version:
148 lines (117 loc) 4.16 kB
import reflux from 'reflux'; import xhr from 'trc-client-core/src/utils/xhr'; import { createAction } from 'redux-actions'; import createRequestActions from 'trc-client-core/src/utils/createRequestActions'; import { jobPosition } from 'trc-client-core/src/utils/Request'; import { TECHNICAL_TRAINERS, TECHNICAL_TRAINERS_CURRENT, PARTICIPANTS_ENDPOINT, PARTICIPANT_SEARCH_ENDPOINT } from 'trc-client-core/src/constants/Endpoints'; import { PARTICIPANT_REQUEST_FETCH, PARTICIPANT_REQUEST_RECEIVE, PARTICIPANT_REQUEST_ERROR, PARTICIPANT_DASHBOARD_FETCH, PARTICIPANT_DASHBOARD_RECEIVE, PARTICIPANT_DASHBOARD_ERROR, PARTICIPANT_MANAGERS_FETCH, PARTICIPANT_MANAGERS_RECEIVE, PARTICIPANT_MANAGERS_ERROR, PARTICIPANT_SEARCH_FETCH, PARTICIPANT_SEARCH_RECEIVE, PARTICIPANT_SEARCH_ERROR, PARTICIPANT_REQUEST_LIST_FETCH, PARTICIPANT_REQUEST_LIST_RECEIVE, PARTICIPANT_REQUEST_LIST_ERROR, PARTICIPANT_JOB_POSITION_LIST_FETCH, PARTICIPANT_JOB_POSITION_LIST_RECEIVE, PARTICIPANT_JOB_POSITION_LIST_ERROR } from 'trc-client-core/src/constants/ActionTypes'; import { IS_TECH_STAFF } from 'trc-client-core/src/constants/PredefinedQuerys'; var ParticipantActions = reflux.createActions({ 'fetchCurrentParticipant': {asyncResult: true}, 'fetchParticipant': {asyncResult: true}, 'fetchParticipants': {asyncResult: true}, 'fetchTechnicalStaff': {asyncResult: true}, 'fetchManagers': {asyncResult: true}, 'search': {asyncResult: true}, 'fetchTechnicalTrainers': {asyncResult: true} }); /** * boolean current_dealer, * boolean current_region, * string dealer, * list department, * list region, * boolean manager */ ParticipantActions.fetchCurrentParticipant.listenAndPromise(function(query) { return xhr.get('/api/v1/participants', query); }); ParticipantActions.fetchManagers.listenAndPromise(function() { return xhr.get('/api/v1/participants', { current_dealer: true, manager: true }); }); ParticipantActions.fetchTechnicalStaff.listenAndPromise(function() { return xhr.get('/api/v1/participants', { current_dealer: true, predefined: IS_TECH_STAFF }); }); ParticipantActions.search.listenAndPromise(function(query) { return xhr.get('/admin/util/switch_user', query); }); ParticipantActions.fetchTechnicalTrainers.listenAndPromise((query) => { if(query.current === true) { return xhr.get(TECHNICAL_TRAINERS_CURRENT, query); } else { return xhr.get(TECHNICAL_TRAINERS, query); } }); // // REDUX // ParticipantActions.participantSearchRequest = createRequestActions( PARTICIPANT_SEARCH_FETCH, PARTICIPANT_SEARCH_RECEIVE, PARTICIPANT_SEARCH_ERROR, (query) => xhr.get(PARTICIPANT_SEARCH_ENDPOINT, query) ); ParticipantActions.participantRequest = createRequestActions( PARTICIPANT_REQUEST_FETCH, PARTICIPANT_REQUEST_RECEIVE, PARTICIPANT_REQUEST_ERROR, (query) => xhr.get(PARTICIPANTS_ENDPOINT, query) ); ParticipantActions.requestParticipantList = createRequestActions( PARTICIPANT_REQUEST_LIST_FETCH, PARTICIPANT_REQUEST_LIST_RECEIVE, PARTICIPANT_REQUEST_LIST_ERROR, (query) => xhr.get(PARTICIPANTS_ENDPOINT, query) ); ParticipantActions.participantDashboardRequest = createRequestActions( PARTICIPANT_DASHBOARD_FETCH, PARTICIPANT_DASHBOARD_RECEIVE, PARTICIPANT_DASHBOARD_ERROR, (query) => xhr.get('/api/portal/dashboard/view', query) ); ParticipantActions.requestManagers = (query) => (dispatch, getState) => { dispatch(createAction(PARTICIPANT_MANAGERS_FETCH)()); xhr.get(PARTICIPANTS_ENDPOINT, {current_dealer: true, manager: true}).then( (data) => dispatch(createAction(PARTICIPANT_MANAGERS_RECEIVE)(data)), (error) => dispatch(createAction(PARTICIPANT_MANAGERS_ERROR)(error)) ); }; ParticipantActions.jobPositionRequest = createRequestActions( PARTICIPANT_JOB_POSITION_LIST_FETCH, PARTICIPANT_JOB_POSITION_LIST_RECEIVE, PARTICIPANT_JOB_POSITION_LIST_ERROR, (query) => jobPosition.list(query) ); module.exports = ParticipantActions;