Home Reference Source Repository

src/reducers/projects.js

/*!
 * Codefolio
 * Copyright(c) 2016 MSMFSD
 * MIT Licensed
 */
import {
  FETCH_PROJECTS_REQUEST,
  FETCH_PROJECTS_RESULT,
  FETCH_PROJECTS_ERROR,
  DELETE_PROJECT_REQUEST,
  DELETE_PROJECT_RESULT,
  DELETE_PROJECT_FAIL
} from '../actions/index'

const projects = (state = {}, action) => {
  switch (action.type) {
    case FETCH_PROJECTS_REQUEST:
      return Object.assign({}, state, {
        loading: true,
        error: null,
        errMessage: null
      })
    case FETCH_PROJECTS_RESULT:
      return Object.assign({}, state, {
        loading: false,
        hasLoaded: true,
        error: null,
        errMessage: null,
        data: action.payload
      })
    case FETCH_PROJECTS_ERROR:
      return Object.assign({}, state, {
        loading: false,
        hasLoaded: false,
        error: true,
        errMessage: action.payload
      })
    case DELETE_PROJECT_REQUEST:
      return Object.assign({}, state, {
        loading: true,
        error: null,
        errMessage: null
      })
    case DELETE_PROJECT_RESULT:
      return Object.assign({}, state, {
        loading: false,
        error: null,
        errMessage: null
      })
    case DELETE_PROJECT_FAIL:
      return Object.assign({}, state, {
        loading: false,
        error: true,
        errMessage: action.payload
      })
    default:
      return state
  }
}

export default projects