Files
inscripciones_api/server/controller/Usuario/escolares.js
T
2022-01-26 18:33:44 -06:00

59 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,
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;