townshipsReducer.js 1.41 KB
import {
  FETCH_TOWNSHIPS_REQUEST,
  FETCH_TOWNSHIPS_SUCCESS,
  FETCH_TOWNSHIPS_FAIL,
  FETCH_TOWNSHIP_REQUEST,
  FETCH_TOWNSHIP_SUCCESS,
  FETCH_TOWNSHIP_FAIL,
  CLEAR_ERRORS
} from "../constants/townshipsConstants";

// Room details reducer.
export const townshipsReducer = (state = { townships: [] }, action) => {
  switch (action.type) {
    case FETCH_TOWNSHIPS_REQUEST:
      return {
        loading: true
      };

    case FETCH_TOWNSHIPS_SUCCESS:
      return {
        loading: false,
        totalCount: action.payload.meta.pagination.total,
        resultsPerPage: action.payload.meta.pagination.pageSize,
        townships: action.payload.data
      };

    case FETCH_TOWNSHIPS_FAIL:
      return {
        error: action.payload.error.message
      };

    case CLEAR_ERRORS:
      return {
        ...state,
        error: null
      };

    default:
      return state;
  }
};

export const townshipReducer = (state = { township: {} }, action) => {
  switch (action.type) {
    case FETCH_TOWNSHIP_REQUEST:
      return {
        loading: true
      };

    case FETCH_TOWNSHIP_SUCCESS:
      return {
        loading: false,
        township: action.payload.data
      };

    case FETCH_TOWNSHIP_FAIL:
      return {
        loading: false,
        error: action.payload.error.message
      };

    case CLEAR_ERRORS:
      return {
        ...state,
        error: null
      };

    default:
      return state;
  }
};