Files
inscripciones_api/server/controller/Profesor/inscripcionProfesor.js
T

90 lines
2.5 KiB
JavaScript
Raw Normal View History

2025-07-28 15:33:09 -06:00
const enviarCorreoInscripcion = require('../../controller/Profesor/enviarCorreo'); // Ajusta si está en otra ruta
2025-08-09 18:52:17 -06:00
const Alumno = require('../../db/tablas/Alumno');
const AlumnoInscrito = require('../../db/tablas/AlumnoInscrito');
2025-07-28 15:33:09 -06:00
async function realizarInscripcion(req, res) {
2025-08-09 18:52:17 -06:00
const { id_cuenta, nombre, correo } = req.body;
2025-07-28 15:33:09 -06:00
try {
2025-08-11 12:45:58 -06:00
if (!nombre || !id_cuenta) {
2025-07-28 15:33:09 -06:00
return res.status(400).json({ message: 'Faltan datos requeridos.' });
}
2025-08-11 12:45:58 -06:00
2025-07-28 15:33:09 -06:00
// 1. Buscar si el usuario existe
2025-08-09 18:52:17 -06:00
const usuario = await Alumno.findOne({ where: { id_cuenta } });
2025-07-28 15:33:09 -06:00
if (!usuario) {
return res.status(404).json({ message: 'Usuario no encontrado en la base de datos.' });
}
2025-08-11 11:30:12 -06:00
2025-07-28 15:33:09 -06:00
// 2. Verificar si ya tiene inscripción
2025-08-09 18:52:17 -06:00
const inscripcionExistente = await AlumnoInscrito.findOne({
2025-08-11 12:45:58 -06:00
where: {
id_cuenta: usuario.id_cuenta,
2026-02-05 01:05:20 +00:00
id_periodo: 28
2025-08-11 12:45:58 -06:00
}
2025-07-28 15:33:09 -06:00
});
2025-08-11 11:30:12 -06:00
console.log('Inscripcion:', inscripcionExistente)
2025-07-28 15:33:09 -06:00
if (inscripcionExistente) {
return res.status(200).json({
message: 'El usuario ya está inscrito.',
});
}
// // Validacion del periodo
// const periodoActivo = await Periodo.findOne({
// where: {
// activo: 1 // o true
// }
// });
// if (!periodoActivo) {
// throw new Error("No hay un periodo activo");
// }
2025-07-28 15:33:09 -06:00
// 3. Crear inscripción
2025-08-09 18:52:17 -06:00
await AlumnoInscrito.create({
2025-08-11 12:45:58 -06:00
id_cuenta: usuario.id_cuenta,
2026-02-05 01:05:20 +00:00
id_periodo: 28,
2025-08-11 12:45:58 -06:00
id_plataforma: 5,
fecha_inscripcion: new Date(),
tiempo_disponible: 3600,
realizo_pago: 0,
2025-08-13 11:23:47 -06:00
platica: 1,
2025-08-11 12:45:58 -06:00
ad: 0
2025-07-28 15:33:09 -06:00
});
2025-08-09 18:16:56 -06:00
2025-07-28 15:33:09 -06:00
// 4. Realizar confirmacion
2025-08-09 18:52:17 -06:00
await AlumnoInscrito.update(
2025-08-09 18:16:56 -06:00
{ platica: 1 },
{ where: { id_cuenta: usuario.id_cuenta } }
2025-07-28 15:33:09 -06:00
);
2025-08-11 12:24:45 -06:00
2025-08-11 12:14:28 -06:00
console.log(correo)
2025-08-11 12:45:58 -06:00
console.log(nombre)
2025-07-28 15:33:09 -06:00
// 5. Enviar correo
await enviarCorreoInscripcion(correo, nombre);
// 6. Respuesta final
res.status(200).json({ message: 'Inscripción creada y correo enviado correctamente.' });
} catch (error) {
console.error('Error en realizarInscripcion:', error);
2025-08-09 18:52:17 -06:00
//console.log('Datos recibidos para inscripción:', req.body);
2025-07-28 15:33:09 -06:00
res.status(500).json({ message: 'Error al procesar la inscripción o enviar el correo.' });
}
}
module.exports = { realizarInscripcion };