60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
const { obtenerAlumno, obtenerCarrera } = require('../../config/mariadb.conf');
|
|
const validar = require('../../helper/validar');
|
|
const dbPath = '../../db/tablas';
|
|
const Carrera = require(`${dbPath}/Carrera`);
|
|
const Usuario = require(`${dbPath}/Usuario`);
|
|
|
|
const escolares = async (body) => {
|
|
const numeroCuenta = validar.validarNumeroCuenta(body.numeroCuenta);
|
|
|
|
return Usuario.findOne({
|
|
where: { numeroCuenta: numeroCuenta },
|
|
}).then((res) => {
|
|
if (!res) {
|
|
let usuario = {};
|
|
|
|
return obtenerAlumno(numeroCuenta)
|
|
.then(async (res) => {
|
|
usuario = res;
|
|
return res;
|
|
})
|
|
.then(async (res) => {
|
|
return obtenerCarrera(res.id_carrera);
|
|
})
|
|
.then(async (res) => {
|
|
if (!usuario) throw new Error('Este número de cuenta no existe.');
|
|
if (usuario.vigente != 'si')
|
|
throw new Error('Este alumno no esta inscrito este semestre.');
|
|
usuario.nombre = usuario.nombre;
|
|
usuario.carrera = res.carrera;
|
|
|
|
usuario.carrera = await Carrera.findOne({
|
|
where: { idCarrera: usuario.id_carrera },
|
|
}).then((res) => {
|
|
if (!res)
|
|
return Carrera.create({
|
|
idCarrera: usuario.id_carrera,
|
|
carrera: usuario.carrera,
|
|
});
|
|
return res;
|
|
});
|
|
|
|
return Usuario.create({
|
|
numeroCuenta: numeroCuenta,
|
|
password: 'hola',
|
|
nombre: usuario.nombre,
|
|
semestre: 8,
|
|
idCarrera: usuario.id_carrera,
|
|
});
|
|
});
|
|
}
|
|
return Usuario.findOne({
|
|
where: { numeroCuenta: numeroCuenta },
|
|
include: [{ model: Carrera }],
|
|
attributes: ['idUsuario', 'numeroCuenta', 'nombre'],
|
|
});
|
|
});
|
|
};
|
|
|
|
module.exports = escolares;
|