109 lines
3.0 KiB
JavaScript
109 lines
3.0 KiB
JavaScript
require('./config');
|
|
const mariadb = require('mariadb');
|
|
|
|
const pool1 = mariadb.createPool({
|
|
host: process.env.SAT_HOST,
|
|
user: process.env.SAT_USER,
|
|
password: process.env.SAT_PASSWORD,
|
|
database: process.env.SATL_DB,
|
|
});
|
|
|
|
const pool2 = mariadb.createPool({
|
|
host: process.env.HOST_DB,
|
|
user: process.env.USER_DB,
|
|
password: process.env.PASSWORD_DB,
|
|
database: process.env.SATE_DB,
|
|
});
|
|
|
|
const obtenerIdCarrera = async (numeroCuenta) => {
|
|
const conn = await pool1.getConnection().catch((err) => {
|
|
throw new Error('No se pudo conectar con la db. ' + err);
|
|
});
|
|
|
|
return conn
|
|
.query(`SELECT id_carrera FROM alumno WHERE id_cuenta = ${numeroCuenta}`)
|
|
.then((rows) => {
|
|
conn.end();
|
|
// console.log(rows[0]);
|
|
// if (rows[0].length === 0) return null;
|
|
return rows[0];
|
|
})
|
|
.catch((err) => {
|
|
conn.end();
|
|
throw new Error('Hubo un problema con el querry.' + err);
|
|
});
|
|
};
|
|
|
|
const obtenerCarrera = async (idCarrera) => {
|
|
const conn = await pool1.getConnection().catch((err) => {
|
|
throw new Error('No se pudo conectar con la db. ' + err);
|
|
});
|
|
|
|
return conn
|
|
.query(`SELECT id_carrera FROM carrera WHERE id_carrera = ${idCarrera}`)
|
|
.then((rows) => {
|
|
conn.end();
|
|
return rows[0];
|
|
})
|
|
.catch((err) => {
|
|
conn.end();
|
|
throw new Error('Hubo un problema con el querry.' + err);
|
|
});
|
|
};
|
|
|
|
const usuarioInscrito = async (numeroCuenta) => {
|
|
const conn = await pool2.getConnection().catch((err) => {
|
|
throw new Error('No se pudo conectar con la db. ' + err);
|
|
});
|
|
|
|
return conn
|
|
.query(
|
|
`INSERT INTO alumno_inscrito(id_cuenta,id_periodo,id_plataforma,realizo_pago,platica) values(${numeroCuenta}, 20, 4, 1, 1)`
|
|
)
|
|
.then((rows) => {
|
|
conn.end();
|
|
return rows[0];
|
|
})
|
|
.catch((err) => {
|
|
conn.end();
|
|
throw new Error('Hubo un problema con el querry.' + err);
|
|
});
|
|
};
|
|
|
|
// Agregue para profesores
|
|
const buscarProfesorPorNumero = async (numeroTrabajador) => {
|
|
const conn = await pool2.getConnection().catch((err) => {
|
|
throw new Error('No se pudo conectar con la base de datos. ' + err);
|
|
});
|
|
|
|
return conn
|
|
.query(
|
|
`SELECT nombre, idUsuario, numeroCuenta FROM usuario WHERE numeroCuenta = ?`,
|
|
[numeroTrabajador] // NUmero de cuenta
|
|
)
|
|
.then((rows) => {
|
|
conn.end();
|
|
if (rows.length === 0) return null;
|
|
return rows[0]; // { nombre: 'Juan', rfc: 'JUAP123' }
|
|
})
|
|
.catch((err) => {
|
|
conn.end();
|
|
throw new Error('Error al buscar el profesor: ' + err);
|
|
});
|
|
};
|
|
|
|
// Para envios de correos
|
|
const nodemailer = require('nodemailer');
|
|
|
|
const enviarCorreoInscripcion = async (destinatario, nombreProfesor) => {
|
|
const transporter = nodemailer.createTransport({
|
|
service: 'gmail', // o smtp host como 'smtp.mailtrap.io'
|
|
auth: {
|
|
user: process.env.CORREO_ORIGEN, // tu correo
|
|
pass: process.env.CORREO_PASSWORD, // tu contraseña o app password
|
|
},
|
|
});
|
|
};
|
|
|
|
module.exports = { obtenerIdCarrera, obtenerCarrera, usuarioInscrito, buscarProfesorPorNumero };
|