giftCardAction.js 1.6 KB
import axios from "axios";
import { getSession } from "next-auth/react";
import qs from "qs";
import { GET_GIFTCARD_FAIL, GET_GIFTCARD_REQUEST, GET_GIFTCARD_SUCCESS } from "../constants/giftCardConstants";

export const getGiftCard = id => async dispatch => {
  try {
    dispatch({
      type: GET_GIFTCARD_REQUEST
    });

    const config = {
      headers: {
        "Content-Type": "application/json"
      }
    };
    const query = {
      populate: ["image", "endUser"],
      filters: {
        endUser: {
          id: { $eq: id }
        }
      }
    };

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

    const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/gift-cards?${queryString}`, config);
    console.log("response > ", response.data);
    dispatch({
      type: GET_GIFTCARD_SUCCESS,
      payload: response.data
    });
    console.log("gift card here");

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

export const postGiftCard = async ({ data }) => {
  try {
    const session = await getSession();
    if (!session) {
      return;
    }
    const config = {
      headers: {
        "Content-Type": "application/json",
        Authorization: `Bearer ${session.jwt}`
      }
    };

    // const data = {
    //   data
    // };
    const response = await axios.post(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/gift-cards`, { data }, config);
    return response.data;
  } catch (error) {
    console.log("error while posting gift card");
  }
};