const validar = require('../../helper/validar'); const gmail = require('../../helper/gmail'); const correos = require('../../helper/correos'); const Servicio = require('../../db/tablas/Servicio'); const Usuario = require('../../db/tablas/Usuario'); const Programa = require('../../db/tablas/Programa'); const registroValidado = async (body) => { const idServicio = validar.validarId(body.idServicio); const fechaNacimiento = validar.validarFecha(body.fechaNacimiento); const telefono = validar.validarNumero(body.telefono, 15); const direccion = validar.validarAlfanumerico( body.direccion, 'La dirección', 200 ); let correoResponsable = {}; let correoAlumno = {}; let emailResponsable = ''; return Servicio.findOne({ where: { idServicio }, include: [ { model: Usuario }, { model: Programa, include: [{ model: Usuario }] }, ], }) .then((res) => { if (!res) throw new Error('No existe este Servicio Social.'); switch (res.idStatus) { case 2: correoAlumno = correos.registroValidadoAlumno(res.Usuario.nombre); correoResponsable = correos.registroValidadoResponsable( res.Usuario.nombre ); emailResponsable = res.Programa.Usuario.usuario; return gmail(correoAlumno.subject, res.correo, correoAlumno.msj); case 1: throw new Error( 'Este Servicio Social aun no puede pasar a Registro Validado.' ); case 3: throw new Error( 'Este servicio ya se encuentra en Registro Validado.' ); case 4: case 5: throw new Error( 'Este Servicio Social ya paso por el Registro Validado.' ); case 6: throw new Error('Este Servicio Social ya finalizó.'); case 7: case 8: case 9: throw new Error( 'Este Servicio Social se encuentra rechazado. Comunicate con COESI para solucionar tu problema.' ); case 10: throw new Error( 'Este Servicio Social fue cancelado. Comunicate con COESI para solucionar tu problema.' ); } }) .then((res) => gmail(correoResponsable.subject, emailResponsable, correoResponsable.msj) ) .then((res) => Servicio.update( // Producción { idStatus: 3, direccion, telefono, fechaNacimiento }, // Pruebas // { idStatus: 4, direccion, telefono, fechaNacimiento }, { where: { idServicio } } ) ) .then((res) => ({ message: 'Haz terminado el registro de tu Servicio Social correctamente.', })); }; module.exports = registroValidado;