SIU_Dran_net/Server/Controller/DAOTutor.js

70 lines
2.6 KiB
JavaScript

import Conexion from './Conexion.js';
import Tutor from '../Model/Tutor.js';
import logger from '../utils/logger.js';
import DAORegistro from './DAORegistro.js';
class DAOTutor {
static async agregarTutor(tutor) {
const conexion = new Conexion();
const conexionEstablecida = await conexion.conectar();
try {
const sql = `INSERT INTO tutor (nombre,apellido,numeroDeTelefono,idUsuario) VALUES (?,?,?,?);`;
const [result] = await conexionEstablecida.query(sql, [tutor.nombre, tutor.apellido, tutor.numeroDeTelefono, tutor.idUsuario]);
if (result.affectedRows > 0) {
// Registrar la operación
await DAORegistro.registrar({ getMatricula: () => tutor.idUsuario }, 'Agregó tutor', new Date().toISOString());
}
return result.affectedRows > 0;
} catch (error) {
logger.error(`Error al agregar tutor: ${error.message}`);
return false;
} finally {
conexion.cerrarConexion();
}
}
static async editarTutor(tutor) {
const conexion = new Conexion();
const conexionEstablecida = await conexion.conectar();
try {
const sql = `UPDATE tutor SET nombre = ?, apellido = ?, numeroDeTelefono = ? WHERE idUsuario = ?`;
const [result] = await conexionEstablecida.query(sql, [tutor.nombre, tutor.apellido, tutor.numeroDeTelefono, tutor.idUsuario]);
if (result.affectedRows > 0) {
await DAORegistro.registrar({ getMatricula: () => tutor.idUsuario }, 'Editó tutor', new Date().toISOString());
}
return result.affectedRows > 0;
} catch (error) {
logger.error(`Error al editar tutor: ${error.message}`);
return false;
} finally {
conexion.cerrarConexion();
}
}
static async traerTutor(id) {
const conexion = new Conexion();
const conexionEstablecida = await conexion.conectar();
try {
const sql = `SELECT id, nombre, apellido, numeroDeTelefono, idUsuario FROM tutor WHERE idUsuario = ?`;
const [rows] = await conexionEstablecida.query(sql, [id]);
if (rows.length > 0) {
const row = rows[0];
const tutor = new Tutor(row.id, row.nombre, row.apellido, row.numeroDeTelefono, row.idUsuario);
return tutor;
}
return null;
} catch (error) {
logger.error(`Error al traer tutor: ${error.message}`);
return null;
} finally {
conexion.cerrarConexion();
}
}
}
export default DAOTutor;