const connection = require('../conf/connection.js'); const express = require('express'); const bcrypt = require('bcrypt'); const clave = require('./elegir_clave.js'); const email = require('./enviar_correo.js'); const sendmail = require('sendmail')(); var app = express() function query(consulta) { return new Promise(function(resolve, reject) { connection.query(`${consulta}`, (error, results, files) => { if (error) reject(error); resolve(results); }); }) } function depurado(cadena) { if (cadena != null) return cadena.replace(/'/g, "''"); else return null; } app.post('/datos_personales', async(req, res) => { let body = req.body; console.log(body); let mandar = ''; try { let n_correo = depurado(body.correo); let cad = `select * from persona where correo='${n_correo}';`; let respuesta = await query(cad); if (respuesta.length != 0) { res.status(400).json({ error: false, msj: "El correo ya se encuentra registrado" }); return; } let curp = body.curp; curp = depurado(curp); cad = `select * from persona where curp='${curp}';`; respuesta = await query(cad); if (respuesta.length != 0) { res.status(400).json({ error: false, msj: "El CURP ya esta registrado" }); return; } let n_nombre = depurado(body.nombre); let n_apellido_p = depurado(body.apellido_p); let n_apellido_m = depurado(body.apellido_m); let n_curp = curp; let n_genero = depurado(body.genero); let n_edad = body.edad; let n_telefono = depurado(body.telefono); let n_password = await bcrypt.hash(body.password, 10); let n_comunidad = depurado(body.comunidad); let n_situacion = depurado(body.situacion); let n_universidad = depurado(body.universidad); let n_codigo = depurado(body.condigo); if (body.condigo != undefined) n_codigo = null // console.log(n_pasword); // CREATE TABLE `persona` ( // `id_persona` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, // `nombre` varchar(100), // `apellidp_p` varchar(100), // `apellidp_m` varchar(100), // `curp` varchar(200), // `edad` integer, // `genero` varchar(10), // `telefono` varchar(50), // `correo` varchar(100), // `pasword` varchar(300), // `comunidad` varchar(50), // `situacion_academica` varchar(50) // ); cad = `insert into persona values (null,'${n_nombre}', '${n_apellido_p}', '${n_apellido_m}', '${n_curp}', ${n_edad}, '${n_genero}', '${n_telefono}','${n_correo}', '${n_password}', '${n_comunidad}', '${n_situacion}' ,'${ n_universidad}' );`; respuesta = query(cad); respuesta.then(async() => { cad = `select id_persona from persona where correo='${n_correo}'`; let n_res = await query(cad); console.log(n_res); let id_persona = n_res[0].id_persona; if (n_situacion == 'Alumno') { try { let n_cuenta = null; if (body.cuenta != undefined) n_cuenta = depurado(body.cuenta.toString()); let n_year = depurado(body.año.toString()); let n_participacion = depurado(body.participacion); // if (body.tipo_pago == 'ficha') { // let n_respuesta = clave(id_persona, n_correo); // n_respuesta.then(p => { // if (p[0].error == true) { // return res.status(400).json({ err: true, msj: p[0].msj, type: err }); // } else // mandar = p[0].msj; // }) // } console.log("tipo pde pago: ", body.tipo_pago); if (n_cuenta != null) cad = `insert into alumno values( ${id_persona}, '${n_cuenta}', '${n_year}', '${body.tipo_pago}', '${n_codigo}' ) ;`; else cad = `insert into alumno values( ${id_persona}, null, '${n_year}', '${body.tipo_pago}', '${n_codigo}' ) ;`; let n_ans = query(cad); n_ans.then(async() => { if (body.conversatorio != undefined) { let con = body.conversatorio; cad = `insert into asistencia values(null, ${id_persona}, ${con.id_evento}, false, false , false , false, false, '${con.participacion}' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${con.id_evento};`; n_q = await query(cad); } if (body.taller_a != undefined) { let ta = body.taller_a; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } if (body.taller_p != undefined) { let ta = body.taller_p; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, 'Asistente');`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } if (body.visitas != undefined) { let ta = body.visitas; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, 'Asistente');`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } if (body.magistral != undefined) { for (let i = 0; i < body.magistral.length; i++) { let ta = body.magistral[i]; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, true, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } } if (body.bienvenida != undefined) { let ta = body.bienvenida; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, true, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } let msj = "Bienvenido a ASINEA 2020\n\nEn el transcurso de dos días hábiles sera enviado a tu correo las instrucciones de pago." let encabezado = "Registro ASINEA 2020"; await sendmail({ from: 'asinea103@fa.unam.mx', to: `${n_correo}`, subject: `${encabezado}`, html: `${msj}`, }); // email(n_correo, encabezado, msj); // send.then(() => { return res.status(200).json({ error: false, msj: "Exito", id_persona: id_persona, clave: mandar }); // }).catch(err => { // return res.status(400).json({ error: false, msj: "no se puede enviar el correo" }); // }) }).catch(async(err) => { let n_c = `delete from asistencia where id_persona=${id_persona};`; let n_q = await query(n_c); n_c = `delete from alumno where id_persona=${id_persona};`; n_q = await query(n_c); n_c = `delete from academico where id_persona=${id_persona};`; n_q = await query(n_c); let new_c = `delete from persona where id_persona=${id_persona}`; let new_q = await quey(new_c); console.log(err); //se deberia borrar el registro anterio de persona; return res.status(400).json({ err: true, msj: "Error al insertar en la base en alumno", type: err }); }) } catch (err) { let n_c = `delete from asistencia where id_persona=${id_persona};`; let n_q = query(n_c); n_c = `delete from alumno where id_persona=${id_persona};`; n_q = query(n_c); n_c = `delete from academico where id_persona=${id_persona};`; n_q = query(n_c); let new_c = `delete from persona where id_persona=${id_persona}`; let new_q = quey(new_c); //se deberia borrar el registro anterio de persona; console.log(err); return res.status(400).json({ err: true, msj: "Error al insertar en la base en alumno", type: err }); } } else if (n_situacion == 'Académico') { try { let n_grado = depurado(body.grado); let n_asignatura = depurado(body.asignatura); let n_participacion = depurado(body.participacion); cad = `insert into academico values(${id_persona}, '${n_grado}', '${n_asignatura}', '${body.tipo_pago}', '${n_codigo}' );`; let n_ans = query(cad); n_ans.then(async() => { if (body.conversatorio != undefined) { let con = body.conversatorio; cad = `insert into asistencia values(null, ${id_persona}, ${con.id_evento}, false, false , false , false, false, '${con.participacion}');`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${con.id_evento};`; n_q = await query(cad); } if (body.taller_a != undefined) { let ta = body.taller_a; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } if (body.taller_p != undefined) { let ta = body.taller_p; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } if (body.visitas != undefined) { let ta = body.visitas; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } if (body.magistral != undefined) { let ta = body.magistral; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, true, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } if (body.bienvenida != undefined) { let ta = body.bienvenida; cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, true, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } let msj = "Bienvenido a ASINEA 2020\n\nEn el transcurso de dos días hábiles sera enviado a tu correo las instrucciones de pago." let encabezado = "Registro ASINEA 2020"; await sendmail({ from: 'asinea103@fa.unam.mx', to: `${n_correo}`, subject: `${encabezado}`, html: `${msj}`, }); // email(n_correo, encabezado, msj); //send.then(() => { return res.status(200).json({ error: false, msj: "Exito", id_persona: id_persona, clave: mandar }); // }).catch(err => { // return res.status(400).json({ error: false, msj: "no se puede enviar el correo" }); // }) }).catch(async err => { let n_c = `delete from asistencia where id_persona=${id_persona};`; let n_q = await query(n_c); n_c = `delete from alumno where id_persona=${id_persona};`; n_q = await query(n_c); n_c = `delete from academico where id_persona=${id_persona};`; n_q = await query(n_c); let new_c = `delete from persona where id_persona=${id_persona}`; let new_q = await quey(new_c); //se deberia borrar el registro anterio de persona; //se deberia borrar el registro anterio de persona; console.log(err); return res.status(400).json({ err: true, msj: "Error al insertar en la base en academico", type: err }); }) } catch (err) { let n_c = `delete from asistencia where id_persona=${id_persona};`; let n_q = query(n_c); n_c = `delete from alumno where id_persona=${id_persona};`; n_q = query(n_c); n_c = `delete from academico where id_persona=${id_persona};`; n_q = query(n_c); let new_c = `delete from persona where id_persona=${id_persona}`; let new_q = quey(new_c); //se deberia borrar el registro anterio de persona; console.log(err); return res.status(400).json({ err: true, msj: "Error al insertar en la base en academico", type: err }); } } else { res.status(200).json({ error: false, msj: "Exito", id_persona: id_persona, clave: mandar }); return; } }).catch(async err => { console.log("entro ...", err); //se deberia borrar el registro anterio de persona; res.status(400).json({ error: true, msj: "Error al registrar en la base de datos", type: err }); return; }) } catch (err) { console.log("afuera ", err); res.status(400).json({ error: true, msj: err }); } }); module.exports = app