Blame view

redux/actions/categoriesAction.js 1.88 KB
jaymehta committed
1 2 3 4 5 6 7 8 9 10 11 12
import axios from "axios";
import qs from "qs";
import {
  GET_CATEGORIES_FAIL,
  GET_CATEGORIES_REQUEST,
  GET_CATEGORIES_SUCCESS,
  GET_SUB_CATEGORIES_FAIL,
  GET_SUB_CATEGORIES_REQUEST,
  GET_SUB_CATEGORIES_SUCCESS
} from "../constants/categoryConstants";

export const getAllCategories = () => async dispatch => {
13
  console.log("here >");
jaymehta committed
14
  try {
15 16
  console.log("here >>");

jaymehta committed
17 18 19
    dispatch({
      type: GET_CATEGORIES_REQUEST
    });
20

jaymehta committed
21 22 23 24 25
    const config = {
      headers: {
        "Content-Type": "application/json"
      }
    };
26 27 28
    const query = {
      populate: ["image"]
    };
jaymehta committed
29

30 31 32
    const queryString = qs.stringify(query, {
      encodeValuesOnly: true
    });
jaymehta committed
33

34 35
    const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/categories?${queryString}`, config);
    console.log("response > ", response);
jaymehta committed
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
    dispatch({
      type: GET_CATEGORIES_SUCCESS,
      payload: response.data
    });

    return response.data;
  } catch (error) {
    dispatch({
      type: GET_CATEGORIES_FAIL,
      payload: error.response.data
    });
  }
};

export const getAllSubCategories = categoryName => async dispatch => {
  try {
    dispatch({
      type: GET_SUB_CATEGORIES_REQUEST
    });
    const config = {
      headers: {
        "Content-Type": "application/json"
      }
    };

jaymehta committed
61 62
    let query = {
      filters: {},
jaymehta committed
63 64 65
      populate: ["category"]
    };

jaymehta committed
66 67 68
    if (categoryName) {
      query.filters.category.name = { $eq: categoryName };
    }
jaymehta committed
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
    const queryString = qs.stringify(query, {
      encodeValuesOnly: true
    });

    const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/sub-categories/?${queryString}`, config);

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

    return response.data;
  } catch (error) {
    dispatch({
      type: GET_SUB_CATEGORIES_FAIL,
      payload: error.response.data
    });
  }
};