/**
* @fileoverview Modelo para realizar operaciones CRUD
* sobre las pruebas del Torneo Olímpico mediante
* peticiones fetch a controladores PHP en el servidor.
*
* @author Mauricio Peña
*/
import { ErrorDialog } from "/InscripcionesEVG/assets/js/utils/errorHandler.js";
const errorDialog = new ErrorDialog();
/**
* Clase para manejar la inserción, borrado y modificación
* de pruebas en el sistema del Torneo Olímpico.
*/
class M_crudPruebasTO {
/**
* Inserta una nueva prueba en el sistema.
*
* @async
* @param {string} datos - Cuerpo de la solicitud en formato JSON.
* @returns {Promise<Object|undefined>} Respuesta del servidor si es exitosa.
* @throws {Error} En caso de error en la petición o procesamiento.
*/
async insertPrueba(datos) {
try {
const response = await fetch(
"/InscripcionesEVG/index.php?controlador=insertPruebasTO&accion=insertarInscripcion&j=1",
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: datos,
},
);
const data = await response.json();
console.log(data.error);
if (data.error) {
errorDialog.show(data.error);
} else {
errorDialog.show(data.success, true);
return data;
}
} catch (error) {
console.error("Error al añadir prueba:", error);
throw error;
}
}
/**
* Elimina una prueba del sistema.
*
* @async
* @param {string} datos - Cuerpo de la solicitud en formato JSON.
* @returns {Promise<Object|undefined>} Respuesta del servidor si es exitosa.
* @throws {Error} En caso de error en la petición o procesamiento.
*/
async borrarPrueba(datos) {
try {
const response = await fetch(
"/InscripcionesEVG/index.php?controlador=borrarPruebasTO&accion=deleteInscripcion&j=1",
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: datos,
},
);
const data = await response.json();
if (data.error) {
errorDialog.show(data.error);
} else {
errorDialog.show(data.success, true);
return data;
}
} catch (error) {
console.error("Error al borrar prueba:", error);
throw error;
}
}
/**
* Modifica una prueba existente en el sistema.
*
* @async
* @param {string} datos - Cuerpo de la solicitud en formato JSON.
* @returns {Promise<Object|undefined>} Respuesta del servidor si es exitosa.
* @throws {Error} En caso de error en la petición o procesamiento.
*/
async modificarPrueba(datos) {
try {
const response = await fetch(
"/InscripcionesEVG/index.php?controlador=modificarPruebasTO&accion=modificarPrueba&j=1",
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: datos,
},
);
const data = await response.json();
if (data.error) {
errorDialog.show(data.error);
} else {
errorDialog.show(data.success, true);
return data;
}
} catch (error) {
console.error("Error al modificar prueba:", error);
throw error;
}
}
}
export default M_crudPruebasTO;