Files

124 lines
3.3 KiB
JavaScript
Raw Permalink Normal View History

2022-01-24 14:33:16 -06:00
require('./config');
const mariadb = require('mariadb');
const nodemailer = require('nodemailer');
2022-01-24 14:33:16 -06:00
const pool = mariadb.createPool({
2022-03-03 23:09:14 -06:00
host: process.env.HOST_DB,
user: process.env.USER_DB,
password: process.env.PASSWORD_DB,
database: process.env.SAT_DB,
connectionLimit: 5,
acquireTimeout: 60000,
timeout: 60000,
2022-01-24 14:33:16 -06:00
});
const obtenerDatosUsr = async (numeroCuenta) => {
2026-04-22 20:40:40 +01:00
let conn;
try {
conn = await pool.getConnection();
2026-04-22 20:40:40 +01:00
const rows = await conn.query(
`SELECT id_carrera, generacion FROM alumno WHERE id_cuenta = ${numeroCuenta}`
2026-04-22 20:40:40 +01:00
);
return rows[0];
} catch (err) {
throw new Error('Hubo un problema con el querry.' + err);
} finally {
if (conn) conn.end();
}
2022-01-24 14:33:16 -06:00
};
2025-08-09 09:08:26 -06:00
const buscarProfesorPorNumero = async (numeroTrabajador) => {
2026-04-22 20:40:40 +01:00
let conn;
try {
conn = await pool.getConnection();
2026-04-22 20:40:40 +01:00
const rows = await conn.query(
`SELECT nombre, id_cuenta FROM alumno WHERE id_cuenta = ?`,
[numeroTrabajador]
2026-04-22 20:40:40 +01:00
);
console.log('Este es la info que trae:', rows);
2026-04-22 20:40:40 +01:00
console.log(numeroTrabajador);
if (rows.length === 0) return null;
return rows[0];
2026-04-22 20:40:40 +01:00
} catch (err) {
throw new Error('Error al buscar el profesor: ' + err);
} finally {
if (conn) conn.end();
}
2025-07-28 15:33:09 -06:00
};
2026-01-19 12:52:17 -06:00
const validarPeriodoActivo = async (conn) => {
return conn
.query(`SELECT id_periodo FROM periodo WHERE activo = '1' LIMIT 1`)
2025-07-28 15:33:09 -06:00
.then((rows) => {
2026-04-22 20:40:40 +01:00
if (!rows || rows.length === 0) {
console.log('No existe');
throw new Error('No existe un periodo activo en el sistema');
}
console.log('Periodo: ', rows)
return rows;
2025-07-28 15:33:09 -06:00
})
.catch((err) => {
2026-04-22 20:40:40 +01:00
throw new Error('Error al validar periodo activo: ' + err);
2025-07-28 15:33:09 -06:00
});
};
2026-01-19 12:52:17 -06:00
2025-08-09 18:16:56 -06:00
const validarAlumnoInscrito = async (idCuenta) => {
console.log('Validando alumno inscrito con id_cuenta:', idCuenta);
2025-08-09 18:16:56 -06:00
2025-08-13 10:55:36 -06:00
const idLimpio = parseInt(idCuenta, 10);
if (idLimpio.toString().length > 6) {
throw new Error('Error: el número de trabajador no existe');
}
let conn;
try {
conn = await pool.getConnection();
2026-01-19 12:52:17 -06:00
const idPeriodoActivo = await validarPeriodoActivo(conn);
console.log('id del periodo: ', idPeriodoActivo[0]);
2026-01-19 12:52:17 -06:00
const rows = await conn.query(
`SELECT * FROM alumno_inscrito WHERE id_cuenta = ? AND id_periodo = ?`,
[idCuenta, idPeriodoActivo[0].id_periodo]
);
// const [rows] = await conn.query(
// `SELECT * FROM alumno_inscrito WHERE id_cuenta = 000031231 AND id_periodo = 43`
// );
console.log("rows:", rows);
console.log("Tipo:", typeof rows);
console.log("Es arreglo:", Array.isArray(rows));
2025-08-09 18:16:56 -06:00
console.log('Esto es dentro de validar alumno inscrito', rows);
console.log(rows.length)
if (rows.length > 0) {
return ("El alumno ya se encuentra inscrito en el período actual.");
}
2026-01-19 12:52:17 -06:00
return rows[0];
2026-01-19 12:52:17 -06:00
} catch (error) {
throw new Error(`Error al validar alumno inscrito: ${error.message}`);
2026-01-19 12:52:17 -06:00
} finally {
2026-04-22 20:40:40 +01:00
if (conn) conn.end();
2026-01-19 12:52:17 -06:00
}
2025-08-09 18:16:56 -06:00
};
2025-07-28 15:33:09 -06:00
const enviarCorreoInscripcion = async (destinatario, nombreProfesor) => {
const transporter = nodemailer.createTransport({
service: 'gmail',
2025-07-28 15:33:09 -06:00
auth: {
type: 'OAuth2',
user: process.env.CORREO_ORIGEN,
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
refreshToken: process.env.REFRESH_TOKEN,
2025-07-28 15:33:09 -06:00
},
});
};
module.exports = { buscarProfesorPorNumero, validarAlumnoInscrito };