Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3326 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import { axios } from '@utils';

export const saveHabit = async (url, habit) => {
  const formData = new FormData();
  Object.entries(habit).forEach(([key, value]) => value && formData.append(key, value));
  const response = await axios.post(url, formData);
  const { data, message, success } = response.data;
  if (!success) throw new Error('Error al guardar el hábito');
  return { data, message };
};

export const editHabit = async (url, habit) => {
  const formData = new FormData();
  Object.entries(habit).forEach(([key, value]) => formData.append(key, value));
  const response = await axios.post(url, formData);
  const { data, message, success } = response.data;
  if (!success) throw new Error('Error al editar el hábito');
  return { data, message };
};

export const deleteHabit = async (url) => {
  const response = await axios.post(url);
  const { data, success } = response.data;
  if (!success) throw new Error('Error al eliminar el hábito');
  return data;
};

export const getTemplate = async (url) => {
  const response = await axios.get(url);
  const { data, success } = response.data;
  if (!success) throw new Error('Error al guardar el hábito');
  return data;
};

export const saveProgress = async (url, progress) => {
  const formData = new FormData();
  Object.entries(progress).forEach(([key, value]) => formData.append(key, value));
  const response = await axios.post(url, formData);
  const { data, message, success } = response.data;
  if (!success) {
    const errMsg = typeof data === 'string' ? data : 'Error al guardar el progreso del hábito';
    throw new Error(errMsg);
  }
  return { data, message };
};

export const updateProgress = async (url, progress) => {
  const formData = new FormData();
  Object.entries(progress).forEach(([key, value]) => formData.append(key, value));
  const response = await axios.post(url, formData);
  const { data, message, success } = response.data;
  if (!success) {
    const errMsg = typeof data === 'string' ? data : 'Error al actualizar el progreso del hábito';
    throw new Error(errMsg);
  }
  return { data, message };
};

export const deleteProgress = async (url) => {
  const response = await axios.post(url);
  const { data, success } = response.data;
  if (!success) {
    const errMsg = typeof data === 'string' ? data : 'Error al eliminar el progreso del hábito';
    throw new Error(errMsg);
  }
  return data;
};