blogAction.js 2.32 KB
import axios from "axios";
import qs from "qs";
import { FETCH_BLOGS_FAIL, FETCH_BLOGS_REQUEST, FETCH_BLOGS_SUCCESS, FETCH_BLOG_FAIL, FETCH_BLOG_REQUEST, FETCH_BLOG_SUCCESS } from "../constants/blogConstants";

export const getBlogsData =
() =>
async dispatch => {
  try {
    console.log("HI >>>>>")
    dispatch({
          type: FETCH_BLOGS_REQUEST
        });
        const config = {
          headers: {
            "Content-Type": "application/json"
          }
        };
        const query = {
          // pagination: {
          //   pageSize: 12,
          //   page: currentPage
          // },
          filters: {
            category: {
              name: {}
            }
          },
          populate: ["image"],
          sort: ["updatedAt:desc"]
          // pagination: {}
          // pageSize: -1,
        };
        

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

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

        dispatch({
          // type: published ? PUBLISHED_ROOMS_SUCCESS : ADMIN_ROOMS_SUCCESS,
          type: FETCH_BLOGS_SUCCESS,
          payload: response.data
        });
      } catch (error) {

        dispatch({
          // type: published ? PUBLISHED_ROOMS_FAIL : ADMIN_ROOMS_FAIL,
          type: FETCH_BLOGS_FAIL,
          payload: error.response.data
        });
      }
    };

export const getBlogData = slug => async dispatch => {

  try {
    dispatch({
      type: FETCH_BLOG_REQUEST
    });

    const query = {
      filters: {},
      populate: ["image","profilePic"],
      pagination: {}
    };
    // if (country) {
    //   query.filters["country"] = { $eq: country };
    // }
    query.filters["slug"] = { $eq: slug };
    // if (category) {
    // }

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

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

    dispatch({
      // type: published ? PUBLISHED_ROOMS_SUCCESS : ADMIN_ROOMS_SUCCESS,
      type: FETCH_BLOG_SUCCESS,
      payload: response.data
    });
  } catch (error) {

    dispatch({
      // type: published ? PUBLISHED_ROOMS_FAIL : ADMIN_ROOMS_FAIL,
      type: FETCH_BLOG_FAIL,
      payload: error.response.data
    });
  }
};