townshipsAction.js 2.15 KB
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
    });
  }
};