Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…tutorias into maddie-2
  • Loading branch information
MADGRISMAD committed Apr 6, 2024
2 parents 41f0809 + 64fd7ff commit 6c4d07e
Show file tree
Hide file tree
Showing 6 changed files with 175 additions and 97 deletions.
54 changes: 54 additions & 0 deletions BackEnd/controllers/alumno.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,61 @@ const alumnoLogin = async (req, res, next) => {
return res.status(200).send({ token, message: "Login exitoso"});
};

const getAlumnos = async (req, res, next) => {
try{
const alumnos = await AlumnoService.getAlumnos();
return res.status(200).send(alumnos);

}
catch(err){
return res.status(500).send({message: "Error al obtener los alumnos: " + err});
}
}

const getAlumno = async (req, res, next) => {
const { numControl } = req.params;
try{
const alumno = await AlumnoService.getAlumno(numControl);
if(!alumno) return res.status(404).send({message: "Alumno no encontrado"});
return res.status(200).send({alumno, message: "Alumno encontrado"});
}
catch(err){
return res.status(500).send({message: "Error al obtener el alumno: " + err});
}
}

const updateAlumno = async (req, res, next) => {
const { numControl } = req.params;
const data = req.body;
try{
const alumno = await AlumnoService.updateAlumno(numControl);
if(!alumno) return res.status(404).send({message: "Alumno no encontrado"});
await AlumnoService.updateAlumno(numControl, data);
return res.status(200).send({message: "Alumno actualizado"});
}
catch(err){
return res.status(500).send({message: "Error al actualizar el alumno: " + err});
}
}

const deleteAlumno = async (req, res, next) => {
const { numControl } = req.params;
try{
const alumno = await AlumnoService.getAlumno(numControl);
if(!alumno) return res.status(404).send({message: "Alumno no encontrado"});
await AlumnoService.deleteAlumno(numControl);
return res.status(200).send({message: "Alumno eliminado"});
}
catch(err){
return res.status(500).send({message: "Error al eliminar el alumno: " + err});
}
}

module.exports = {
alumnoRegistro,
alumnoLogin,
getAlumnos,
getAlumno,
updateAlumno,
deleteAlumno,
};
129 changes: 64 additions & 65 deletions BackEnd/controllers/cita.controller.js
Original file line number Diff line number Diff line change
@@ -1,65 +1,64 @@
const CitaSchema = require("../models/cita.model");
const CitaService = require("../services/cita.service");

const citaRegistro = async (req, res, next) => {
const { error, cita } = CitaSchema.validate(req.body);
if (error) {
return res.status(400).json({ message: error.details[0].message });
}
try {
const newCita = await CitaService.createCita(cita, req.session.usuario.email);
return res.status(201).json(newCita);
} catch (error) {
return res.status(500).json({ message: error.message });
}
};

const getCitas = async (req, res, next) => {
try {
const citas = await CitaService.getCitas();
return res.status(200).json(citas);
} catch (error) {
return res.status(500).json({ message: error.message });
}
};

const getCitasByAlumno = async (req, res, next) => {
const { id } = req.params;
try {
const cita = await CitaService.getCitasByAlumno(id);
return res.status(200).json(cita);
} catch (error) {
return res.status(500).json({ message: error.message });
}
};
const updateCita = async (req, res, next) => {
const { id } = req.params;
const { error, value } = CitaSchema.validate(req.body);
if (error) {
return res.status(400).json({ message: error.details[0].message });
}

try {
const cita = await CitaService.updateCita(id, value);
return res.status(200).json(cita);
} catch (error) {
return res.status(500).json({ message: error.message });
}
};

const deleteCita = async (req, res, next) => {
const { id } = req.params;
try {
const cita = await CitaService.deleteCita(id);
return res.status(204).json(cita);
} catch (error) {
return res.status(500).json({ message: error.message });
}
}
module.exports = {
citaRegistro,
getCitas,
getCitasByAlumno,
updateCita,
deleteCita,
};
const CitaSchema = require("../models/cita.model");
const CitaService = require("../services/cita.service");

const citaRegistro = async (req, res, next) => {
const { error, cita } = CitaSchema.validate(req.body);
if (error) {
return res.status(400).json({ message: error.details[0].message });
}
try {
const newCita = await CitaService.createCita(cita, req.token.email);
return res.status(201).json(newCita);
} catch (error) {
return res.status(500).json({ message: error.message });
}
};

const getCitas = async (req, res, next) => {
try {
const citas = await CitaService.getCitas();
return res.status(200).json(citas);
} catch (error) {
return res.status(500).json({ message: error.message });
}
};

const getCitasByAlumno = async (req, res, next) => {
// Use with jwt token or when the user is logged in as a maestro
const numeroDeControl = req.params.numeroDeControl || req.token.numeroDeControl;
try {
const cita = await CitaService.getCitasByAlumno(numeroDeControl);
return res.status(200).json(cita);
} catch (error) {
return res.status(500).json({ message: error.message });
}
};
const updateCita = async (req, res, next) => {
// Use with jwt token or when the user is logged in as a maestro
const numeroDeControl = req.params.numeroDeControl || req.token.numeroDeControl;

try {
const cita = await CitaService.updateCita(numeroDeControl, req.body);
return res.status(200).json(cita);
} catch (error) {
return res.status(500).json({ message: error.message });
}
};

const deleteCita = async (req, res, next) => {
// Use with jwt token or when the user is logged in as a maestro
const numeroDeControl = req.params.numeroDeControl || req.token.numeroDeControl;
try {
const cita = await CitaService.deleteCita(numeroDeControl);
return res.status(204).json(cita);
} catch (error) {
return res.status(500).json({ message: error.message });
}
}
module.exports = {
citaRegistro,
getCitas,
getCitasByAlumno,
updateCita,
deleteCita,
};
36 changes: 19 additions & 17 deletions BackEnd/models/maestro.model.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
const Joi = require ("joi");

const maestroSchema = Joi.object({

numeroDeControl: Joi.string().required(),
nombre: Joi.string().required(),
apellidoPaterno: Joi.string().required(),
apellidoMaterno: Joi.string().required(),
// Only tec domain
correo: Joi.string().email().required().regex(/"@tectijuana.edu.mx$|@tijuana.tecnm.mx$"/),
// International prefix
prefijo: Joi.string().required().regex(/"^\d{3}$"/),

telefono: Joi.string().required().regex(/"^\d{10}$"/),
extension: Joi.string().required().regex(/"^\d{4}$"/),
});

const Joi = require ("joi");

const maestroSchema = Joi.object({

numeroDeControl: Joi.string().required(),
// Title of the professor
titulo: Joi.string().required(),
nombre: Joi.string().required(),
apellidoPaterno: Joi.string().required(),
apellidoMaterno: Joi.string().required(),
// Only tec domain
correo: Joi.string().email().required().regex(/"@tectijuana.edu.mx$|@tijuana.tecnm.mx$"/),
// International prefix
prefijo: Joi.string().required().regex(/"^\d{3}$"/),

telefono: Joi.string().required().regex(/"^\d{10}$"/),
extension: Joi.string().required().regex(/"^\d{4}$"/),
});

module.exports = maestroSchema;
21 changes: 15 additions & 6 deletions BackEnd/routes/alumno.route.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,24 @@ const multer = require("multer");
const {
alumnoRegistro,
alumnoLogin,
updateAlumno,
deleteAlumno,
getAlumnos,
getAlumno,
} = require("../controllers/alumno.controller");
const upload = multer();
router.post("/login", upload.none(), alumnoLogin);
router.post(
"/",
upload.none(),
alumnoRegistro,
);

// GET
router.get("/:numControl", getAlumno);
router.get("/", getAlumnos);

// POST
router.post("/", upload.none(), alumnoRegistro);
router.post("/login", upload.none(), alumnoLogin);

// PUT
router.put("/:numControl", updateAlumno);

// DELETE
router.delete("/:numControl", deleteAlumno);
module.exports = router;
20 changes: 17 additions & 3 deletions BackEnd/routes/cita.route.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,26 @@ const {
getCitas,
getCitasByAlumno,
updateCita,
deleteCita,
} = require("../controllers/cita.controller");
const { verifyAlumno, verifyMaestro } = require("../middleware/session.middleware");
const {
verifyAlumno,
verifyMaestro,
} = require("../middleware/session.middleware");
const upload = multer();

router.get("/", verifyMaestro, upload.none(), getCitas);
router.get("/:id", verifyAlumno, upload.none(), getCitasByAlumno);
router.get("/", verifyAlumno, upload.none(), getCitasByAlumno);
router.get("/:numeroDeControl", verifyMaestro, upload.none(), getCitasByAlumno);
router.post("/:id", verifyAlumno, upload.none(), updateCita);
router.put("/", verifyAlumno, upload.none(), citaRegistro);
router.post("/:numeroDeControl/:id", verifyMaestro, upload.none(), updateCita);
router.put("/:id", verifyAlumno, upload.none(), citaRegistro);
router.put("/:numeroDeControl/:id", verifyMaestro, upload.none(), citaRegistro);
router.delete("/:id", verifyMaestro, upload.none(), deleteCita);
router.delete(
"/:numeroDeControl/:id",
verifyMaestro,
upload.none(),
deleteCita
);
module.exports = router;
12 changes: 6 additions & 6 deletions BackEnd/services/cita.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,27 @@ async function createCita(data, email = "") {
text: `Tu cita ha sido registrada con éxito. Fecha: ${data.fecha}`,

})
return db.createCita(data);
return await db.createCita(data);
}

async function getCitas() {
return db.getCitas();
return await db.getCitas();
}

async function getCita(id) {
return db.getCita(id);
return await db.getCita(id);
}

async function getCitasByAlumno(id) {
return db.getCitasByAlumno(id);
return await db.getCitasByAlumno(id);
}

async function updateCita(id, data) {
return db.updateCita(id, data);
return await db.updateCita(id, data);
}

async function deleteCita(id) {
return db.deleteCita(id);
return await db.deleteCita(id);
}

module.exports = {
Expand Down

0 comments on commit 6c4d07e

Please sign in to comment.