import axios from "axios";
import { RcFile } from "antd/lib/upload";
import { baseUrl } from "../../../constants/urls";

export const uploadGiftSheetApi = async (params: any) => {
  const form = new FormData();
  form.append('gift_sheet', params.gift_sheet as RcFile);
  params?.title && form.append('title', params?.title);
  params?.description && form.append('description', params?.description);
  try {
    const url = `${baseUrl}/api/customer/gift-sheet?token=true`;
    const config = {
      method: 'POST',
      url: url,
      headers: {
        Accept: "application/json",
        Authorization: `Bearer ` + params?.token,
      },
      data: form
    };
    const res = await axios(config);
    return res.data;
  } catch (error: any) {
    console.log(error, "error");
    return error.response;
  }
}

export const updateGiftSheetApi = async (params: any) => {
  const form = new FormData();
  params?.gift_sheet && form.append('gift_sheet', params.gift_sheet as RcFile);
  params?.cart_item_id && form.append('cart_item_id', params.cart_item_id);
  params?.id && form.append('id', params.id);
  params?.title && form.append('title', params?.title);
  params?.status && form.append('status', params.status);
  params?.description && form.append('description', params?.description);
  try {
    const url = `${baseUrl}/api/customer/gift-sheet/${params.id}?token=true&_method=PATCH`;
    const config = {
      method: 'POST',
      url: url,
      headers: {
        Accept: "application/json",
        Authorization: `Bearer ` + params?.token,
      },
      data: form
    };
    const res = await axios(config);
    return res.data;
  } catch (error: any) {
    console.log(error, "error");
    return error.response;
  }
}

export const getGiftSheetsApi = async (params: any) => {
  try {
    const url = `${baseUrl}/api/customer/gift-sheet?token=true`;
    const config = {
      method: 'GET',
      url: url,
      headers: {
        Accept: "application/json",
        Authorization: `Bearer ` + params?.token,
      }
    };
    const res = await axios(config);
    return res.data;
  } catch (error: any) {
    console.log(error, "error");
    return error.response;
  }
}

export const deleteGiftSheet = async (payload: any) => {
  try {
    const url = `${baseUrl}/api/customer/gift-sheet/${payload.id}?token=true`
    const config = {
      method: 'DELETE',
      url,
      headers: {
        Accept: 'application/json',
        Authorization: `Bearer ${payload.token}`,
        "Access-Control-Allow-Origin": "*"
      },
    };

    const res = await axios(config);

    return res.data;
  } catch (error: any) {
    console.log(error);
    return error.response.data;
  }
}