Skip to content
Snippets Groups Projects
DegreeCourseApplicationReducer.js 2.82 KiB
Newer Older
Orlando Piñero's avatar
Orlando Piñero committed
import * as applicationManagementActions from "../actions/ApplicationManagementActions"

const initialState = {
    showDeleteApplicationModal: false,
    deleteApplicationModalData: null,
    applicationList: null,
    newApplicationData: null,
    editApplicationData: null
};

function applicationManagementReducer(state = initialState, action) {
    switch (action.type) {
        case applicationManagementActions.SHOW_DELETE_APPLICATION_MODAL:
            return {
                ...state,
                showDeleteApplicationModal: true,
                deleteApplicationModalData: action.deleteApplicationModalData,
                error: null
            }
        case applicationManagementActions.HIDE_DELETE_APPLICATION_MODAL:
            return {
                ...state,
                showDeleteApplicationModal: false,
                deleteApplicationModalData: null,
                error: null
            }

        case applicationManagementActions.DELETE_APPLICATION_SUCCESS:
            return {
                ...state,
                showDeleteApplicationModal: false,
                error: null
            }

        case applicationManagementActions.DELETE_APPLICATION_ERROR:
            return {
                ...state,
                showDeleteApplicationModal: false,
                error: "deleting application failed"
            }


        case applicationManagementActions.EDIT_APPLICATION_SUCCESS:
            return {
                ...state,
                editApplicationData: action.editApplicationData,
                error: null
            }

        case applicationManagementActions.EDIT_APPLICATION_ERROR:
            return {
                ...state,
                error: "editing application failed"
            }


        case applicationManagementActions.SHOW_ALL_APPLICATIONS:
            return {
                ...state,
                applicationList: action.applicationList,
                error: null
            }

        case applicationManagementActions.SHOW_ALL_APPLICATIONS_ERROR:
            return {
                ...state,
                error: "displaying all applications failed"
            }
        case applicationManagementActions.SHOW_MY_APPLICATIONS:
            return {
                ...state,
                applicationList: action.applicationList
            }
        case applicationManagementActions.SHOW_MY_APPLICATIONS_ERROR:
            return {
                ...state,
                error: "displaying my applications failed"
            }


        case applicationManagementActions.CREATE_NEW_APPLICATION_SUCCESS:
            return {
                ...state,
                newApplicationData: action.newApplicationData,
                error: null
            }

        default:
            return state;
    }
};

export default applicationManagementReducer;