Cambios en el crud
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
// src/controladores/controlador_Membresias.js
|
||||
|
||||
// La conexión/pool se obtendrá a través de req.getConnection() inyectado por express-myconnection.
|
||||
|
||||
const controladorMembresias = {
|
||||
|
||||
// --- Funciones para Tipos de Membresía (clientes_membresias) ---
|
||||
@@ -13,10 +11,10 @@ const controladorMembresias = {
|
||||
* @param {Object} res - Objeto de respuesta de Express.
|
||||
*/
|
||||
listarTiposMembresia: async (req, res) => {
|
||||
let connection;
|
||||
// let connection; // No es necesario si se usa req.pool directamente
|
||||
try {
|
||||
connection = await req.getConnection();
|
||||
const [rows] = await connection.query(`
|
||||
// CAMBIO CLAVE AQUÍ: Usar req.pool directamente
|
||||
const [rows] = await req.pool.query(`
|
||||
SELECT
|
||||
cm.id_tipo_membresia,
|
||||
cm.nombre_tipo,
|
||||
@@ -43,9 +41,10 @@ const controladorMembresias = {
|
||||
} catch (error) {
|
||||
console.error('Error al listar tipos de membresía:', error);
|
||||
res.status(500).json({ mensaje: 'Error interno del servidor al listar tipos de membresía', error: error.message });
|
||||
} finally {
|
||||
if (connection && typeof connection.release === 'function') connection.release();
|
||||
}
|
||||
// finally { // El bloque finally para release no es necesario si se usa req.pool directamente
|
||||
// if (connection && typeof connection.release === 'function') connection.release();
|
||||
// }
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -56,10 +55,10 @@ const controladorMembresias = {
|
||||
*/
|
||||
obtenerTipoMembresiaPorId: async (req, res) => {
|
||||
const { id } = req.params; // ID de la tabla clientes_membresias
|
||||
let connection;
|
||||
// let connection;
|
||||
try {
|
||||
connection = await req.getConnection();
|
||||
const [rows] = await connection.query(`
|
||||
// CAMBIO CLAVE AQUÍ: Usar req.pool directamente
|
||||
const [rows] = await req.pool.query(`
|
||||
SELECT
|
||||
cm.id_tipo_membresia,
|
||||
cm.nombre_tipo,
|
||||
@@ -90,9 +89,10 @@ const controladorMembresias = {
|
||||
} catch (error) {
|
||||
console.error('Error al obtener tipo de membresía:', error);
|
||||
res.status(500).json({ mensaje: 'Error interno del servidor al obtener tipo de membresía', error: error.message });
|
||||
} finally {
|
||||
if (connection && typeof connection.release === 'function') connection.release();
|
||||
}
|
||||
// finally {
|
||||
// if (connection && typeof connection.release === 'function') connection.release();
|
||||
// }
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -113,10 +113,10 @@ const controladorMembresias = {
|
||||
return res.status(400).json({ mensaje: 'Faltan campos obligatorios para el tipo de membresía (nombre_tipo, es_grupal, valor).' });
|
||||
}
|
||||
|
||||
let connection;
|
||||
// let connection;
|
||||
try {
|
||||
connection = await req.getConnection();
|
||||
const [result] = await connection.query(
|
||||
// CAMBIO CLAVE AQUÍ: Usar req.pool directamente para la query
|
||||
const [result] = await req.pool.query(
|
||||
`INSERT INTO clientes_membresias (
|
||||
nombre_tipo, categoria_membresia, es_grupal, capacidad_maxima_miembros,
|
||||
valor, descripcion, duracion_dias, visitas_maximas_diarias,
|
||||
@@ -132,14 +132,14 @@ const controladorMembresias = {
|
||||
res.status(201).json({ mensaje: 'Tipo de membresía creado exitosamente', id: result.insertId });
|
||||
} catch (error) {
|
||||
console.error('Error al crear tipo de membresía:', error);
|
||||
// Manejo de error específico por entrada duplicada (ej. nombre_tipo único)
|
||||
if (error.code === 'ER_DUP_ENTRY') {
|
||||
return res.status(409).json({ mensaje: 'Ya existe un tipo de membresía con ese nombre.', error: error.message });
|
||||
}
|
||||
res.status(500).json({ mensaje: 'Error interno del servidor al crear tipo de membresía', error: error.message });
|
||||
} finally {
|
||||
if (connection && typeof connection.release === 'function') connection.release();
|
||||
}
|
||||
// finally {
|
||||
// if (connection && typeof connection.release === 'function') connection.release();
|
||||
// }
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -156,15 +156,14 @@ const controladorMembresias = {
|
||||
areas_de_acceso, id_combo_ensamblado_incluido, cantidad_combo_incluido, estado_tipo
|
||||
} = req.body;
|
||||
|
||||
// Validaciones básicas de campos obligatorios
|
||||
if (!nombre_tipo || es_grupal === undefined || valor === undefined || !estado_tipo) {
|
||||
return res.status(400).json({ mensaje: 'Faltan campos obligatorios para actualizar el tipo de membresía (nombre_tipo, es_grupal, valor, estado_tipo).' });
|
||||
}
|
||||
|
||||
let connection;
|
||||
// let connection;
|
||||
try {
|
||||
connection = await req.getConnection();
|
||||
const [result] = await connection.query(
|
||||
// CAMBIO CLAVE AQUÍ: Usar req.pool directamente para la query
|
||||
const [result] = await req.pool.query(
|
||||
`UPDATE clientes_membresias SET
|
||||
nombre_tipo = ?, categoria_membresia = ?, es_grupal = ?,
|
||||
capacidad_maxima_miembros = ?, valor = ?, descripcion = ?,
|
||||
@@ -185,14 +184,14 @@ const controladorMembresias = {
|
||||
res.json({ mensaje: 'Tipo de membresía actualizado exitosamente' });
|
||||
} catch (error) {
|
||||
console.error('Error al actualizar tipo de membresía:', error);
|
||||
// Manejo de error específico por entrada duplicada
|
||||
if (error.code === 'ER_DUP_ENTRY') {
|
||||
return res.status(409).json({ mensaje: 'Ya existe otro tipo de membresía con ese nombre.', error: error.message });
|
||||
}
|
||||
res.status(500).json({ mensaje: 'Error interno del servidor al actualizar tipo de membresía', error: error.message });
|
||||
} finally {
|
||||
if (connection && typeof connection.release === 'function') connection.release();
|
||||
}
|
||||
// finally {
|
||||
// if (connection && typeof connection.release === 'function') connection.release();
|
||||
// }
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -203,12 +202,10 @@ const controladorMembresias = {
|
||||
*/
|
||||
eliminarTipoMembresia: async (req, res) => {
|
||||
const { id } = req.params;
|
||||
let connection;
|
||||
// let connection;
|
||||
try {
|
||||
connection = await req.getConnection();
|
||||
// Se recomienda una eliminación lógica para mantener la integridad referencial
|
||||
// si hay adquisiciones de membresía o historial asociados.
|
||||
const [result] = await connection.query('UPDATE clientes_membresias SET estado_tipo = "ELIMINADO" WHERE id_tipo_membresia = ?', [id]);
|
||||
// CAMBIO CLAVE AQUÍ: Usar req.pool directamente para la query
|
||||
const [result] = await req.pool.query('UPDATE clientes_membresias SET estado_tipo = "ELIMINADO" WHERE id_tipo_membresia = ?', [id]);
|
||||
|
||||
if (result.affectedRows === 0) {
|
||||
return res.status(404).json({ mensaje: 'Tipo de membresía no encontrado para eliminar' });
|
||||
@@ -217,9 +214,10 @@ const controladorMembresias = {
|
||||
} catch (error) {
|
||||
console.error('Error al eliminar tipo de membresía:', error);
|
||||
res.status(500).json({ mensaje: 'Error interno del servidor al eliminar tipo de membresía', error: error.message });
|
||||
} finally {
|
||||
if (connection && typeof connection.release === 'function') connection.release();
|
||||
}
|
||||
// finally {
|
||||
// if (connection && typeof connection.release === 'function') connection.release();
|
||||
// }
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user