Blame view

redux/actions/townshipsAction.js 2.15 KB
jay committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
import axios from "axios";
import qs from "qs";
import {
  FETCH_TOWNSHIPS_REQUEST,
  FETCH_TOWNSHIPS_SUCCESS,
  FETCH_TOWNSHIPS_FAIL,
  FETCH_TOWNSHIP_REQUEST,
  FETCH_TOWNSHIP_SUCCESS,
  FETCH_TOWNSHIP_FAIL,
  CLEAR_ERRORS
} from "../constants/townshipsConstants";

export const getTownships =
  ({ currentPage = 1, resultsPerPage = 3, published = true }) =>
  async dispatch => {
    try {
      dispatch({
        type: FETCH_TOWNSHIPS_REQUEST
      });

      const query = {
        filters: {},
        populate: ["townshipImages", "townshipImages.image", "location"],
        pagination: {
          pageSize: resultsPerPage,
          page: currentPage
        },
        publicationState: published ? "live" : "preview"
      };

      const queryString = qs.stringify(query, {
        encodeValuesOnly: true
      });

      const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/townships?${queryString}`);

      dispatch({
        type: FETCH_TOWNSHIPS_SUCCESS,
        payload: response.data
      });
    } catch (error) {
      console.log("Real error is: ");
      console.log(error.response.data);

      dispatch({
        type: FETCH_TOWNSHIPS_FAIL,
        payload: error.response.data
      });
    }
  };

export const getTownship = townshipId => async dispatch => {
  try {
    dispatch({
      type: FETCH_TOWNSHIP_REQUEST
    });

    const query = {
      // filters: {},
      populate: ["townshipImages", "townshipImages.image", "location","cpGuidelines"]
      // pagination: {
      //   pageSize: resultsPerPage,
      //   page: currentPage
      // },
      // publicationState: published ? "live" : "preview"
    };

    const queryString = qs.stringify(query, {
      encodeValuesOnly: true
    });

    const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/townships/${townshipId}?${queryString}`);

    dispatch({
      type: FETCH_TOWNSHIP_SUCCESS,
      payload: response.data
    });
  } catch (error) {
    console.log("Real error is: ");
    // console.log(error.response.data);
    console.log(error);

    dispatch({
      type: FETCH_TOWNSHIP_FAIL,
      payload: error.response.data
    });
  }
};