From d61b71ff72b8a9837b3e9809085c7077c1bb2381 Mon Sep 17 00:00:00 2001 From: lemuel Date: Sat, 23 Oct 2021 06:42:04 -0500 Subject: [PATCH] registrar listo --- server/controller/Alumno/get.js | 4 +-- server/controller/AlumnoHorario/registrar.js | 38 ++++++++++++++++++++ server/controller/Horario/get.js | 5 ++- server/routes/AlumnoHorario.js | 28 +++++++-------- server/routes/index.js | 2 +- 5 files changed, 57 insertions(+), 20 deletions(-) create mode 100644 server/controller/AlumnoHorario/registrar.js diff --git a/server/controller/Alumno/get.js b/server/controller/Alumno/get.js index 2841135..667d121 100644 --- a/server/controller/Alumno/get.js +++ b/server/controller/Alumno/get.js @@ -1,7 +1,7 @@ const { validarNumeroCuenta } = require('../../helper/validar'); const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); const Alumno = require(`${dbPath}/Alumno`); +const Carrera = require(`${dbPath}/Carrera`); const get = async (body) => { const numeroCuenta = validarNumeroCuenta(body.numeroCuenta); @@ -11,7 +11,7 @@ const get = async (body) => { include: [{ model: Carrera }], }).then((res) => { if (!res) throw new Error('No existe este número de cuenta.'); - delete res.idCarrera; + delete res.dataValues.idCarrera; return res; }); }; diff --git a/server/controller/AlumnoHorario/registrar.js b/server/controller/AlumnoHorario/registrar.js new file mode 100644 index 0000000..8f08e8e --- /dev/null +++ b/server/controller/AlumnoHorario/registrar.js @@ -0,0 +1,38 @@ +const { validarId } = require('../../helper/validar'); +const dbPath = '../../db/tablas'; +const Alumno = require(`${dbPath}/Alumno`); +const AlumnoHorario = require(`${dbPath}/AlumnoHorario`); +const Horario = require(`${dbPath}/Horario`); + +const registrar = async (body) => { + const idHorario = validarId(body.idHorario); + const idAlumno = validarId(body.idAlumno); + let turno = ''; + + return Alumno.findOne({ + where: { idAlumno }, + }) + .then((res) => { + if (!res) throw new Error('No existe este número de cuenta.'); + turno = res.turno; + return Horario.findOne({ where: { idHorario } }); + }) + .then((res) => { + if (!res) throw new Error('No existe este horario.'); + if (turno != res.turno) + throw new Error('Este horario no corresponde con el turno del alumno.'); + return AlumnoHorario.findOne({ where: { idAlumno } }); + }) + .then((res) => { + if (res) throw new Error('Este alumno ya tiene un horario seleccionado.'); + return AlumnoHorario.findAll({ where: { idHorario } }); + }) + .then((res) => { + if (res.length > 50) + throw new Error('Ya no hay espacio en este horario.'); + return AlumnoHorario.create({ idAlumno, idHorario }); + }) + .then((res) => ({ message: 'Se registro correctamente tu horario.' })); +}; + +module.exports = registrar; diff --git a/server/controller/Horario/get.js b/server/controller/Horario/get.js index bbea297..8ef5dc7 100644 --- a/server/controller/Horario/get.js +++ b/server/controller/Horario/get.js @@ -1,6 +1,5 @@ -const { validarTexto, validar } = require('../../helper/validar'); -const dbPath = '../../db/tablas'; -const Horario = require(`${dbPath}/Horario`); +const { validarTexto } = require('../../helper/validar'); +const Horario = require(`../../db/tablas/Horario`); const get = async (body) => { const turno = validarTexto(body.turno, 'El turno', 1); diff --git a/server/routes/AlumnoHorario.js b/server/routes/AlumnoHorario.js index 4485e38..135743f 100644 --- a/server/routes/AlumnoHorario.js +++ b/server/routes/AlumnoHorario.js @@ -1,21 +1,21 @@ const express = require('express'); const app = express(); -const route = '/grupo_horario'; -const controllerPath = '../controller/GrupoHorario'; -// const horariosDia = require(`${controllerPath}/horariosDia`); -// const monitor = require(`${controllerPath}/monitor`); +const route = '/alumno_horario'; +const controllerPath = '../controller/AlumnoHorario'; +const registrar = require(`${controllerPath}/registrar`); -// // GET -// app.get(`${route}/horarios_dia`, (req, res) => { -// return horariosDia(req.body) -// .then((data) => { -// res.status(200).json(data); -// }) -// .catch((err) => { -// res.status(400).json({ message: err.message }); -// }); -// }); +// POST +app.post(`${route}/registrar`, (req, res) => { + return registrar(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); +// GET // app.get(`${route}/monitor`, (req, res) => { // return monitor(req.body) // .then((data) => { diff --git a/server/routes/index.js b/server/routes/index.js index f116fb5..494c4eb 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -2,7 +2,7 @@ const express = require('express'); const app = express(); app.use(require('./Alumno')); -// app.use(require('./AlumnoHorario')); +app.use(require('./AlumnoHorario')); app.use(require('./Horario')); module.exports = app;