blogAction.js 2.24 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 =
  ({ subCategories }) =>
  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: {}
          },
          $or: subCategories
        },
        populate: ["image", "subCategory"],
        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}`, config);

      dispatch({
        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
    });
  }
};