import axios from "axios"; import { getSession } from "next-auth/react"; import qs from "qs"; import { GET_REVIEWS_FAIL, GET_REVIEWS_REQUEST, GET_REVIEWS_SUCCESS } from "../constants/reviewsConstants"; export const postReviewEndUser = async ({ endUserId, activityId, comments, rating }) => { try { const session = await getSession(); console.log("session", session); if (!session) { return; } const config = { headers: { "Content-Type": "application/json", Authorization: `Bearer ${session.jwt}` } }; const data = { endUser: endUserId, experience: activityId, comments, rating }; console.log("data", data); const response = await axios.post(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/reviews?`, { data }, config); return response.data; } catch (error) {} }; export const getReviewsAction = ({ activityId, endUserId }) => async dispatch => { try { dispatch({ type: GET_REVIEWS_REQUEST, loading: true }); const config = { headers: { "Content-Type": "application/json" // Authorization: `Bearer ${session.jwt}` } }; const query = { filters: {}, populate: ["endUser", "experience"] }; if (activityId) { query.filters["experience"] = { id: { $eq: activityId } }; } if (endUserId) { query.filters["endUser"] = { id: { $eq: endUserId } }; } const queryString = qs.stringify(query, { encodeValuesOnly: true }); const response = await axios.get(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/reviews?${queryString}`, config); dispatch({ type: GET_REVIEWS_SUCCESS, payload: response.data, loading: false }); } catch (error) { dispatch({ type: GET_REVIEWS_FAIL, payload: error.response.data }); } }; export const deleteReview = async ({ reviewId }) => { try { const session = await getSession(); console.log("session", session); if (!session) { return; } const config = { headers: { "Content-Type": "application/json", Authorization: `Bearer ${session.jwt}` } }; const response = await axios.delete(`${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/reviews/${reviewId}`, config); return response.data; } catch (error) {} };