From ff97643d3976abf95ba2796fc9236c9b13c60d37 Mon Sep 17 00:00:00 2001 From: danielGe Date: Tue, 24 Mar 2020 02:44:59 -0600 Subject: [PATCH] correo --- files/lista-1.pdf | Bin 341632 -> 341872 bytes package-lock.json | 19 +++++++++++ package.json | 2 ++ routes/descargar_pdf.js | 54 ++++++++++++++++++++++--------- routes/index.js | 2 ++ routes/loggin_persona.js | 10 +++--- routes/registro_evento.js | 4 ++- routes/traer_asistente.js | 66 ++++++++++++++++++++++++++++++++++++++ routes/traer_eventos.js | 13 ++++++-- sql/values.sql | 2 +- 10 files changed, 147 insertions(+), 25 deletions(-) create mode 100644 routes/traer_asistente.js diff --git a/files/lista-1.pdf b/files/lista-1.pdf index d94c85555487244e21a616e0813dd930a3c7120b..17fba845034111eaf5b5433a1b0800abbe3182d2 100644 GIT binary patch delta 1597 zcmaiqc{CIV0EgX!oS9m!ga(x(bD9|@xv!WJ#iP{BxDpwm5>qo|W{fjY61f%SCOmTG zp20fSF|Lek$ekl=*tXq&_U-y(fA4+o{oeOJ>N0R`1z0*PCg zmAWhvuqrb=lMlE8U@eaEU1}gMnq}Lga#5lv-hZQobY^dJl`Fku9es*IPCM#gsqJW% zdg%iweV1k&#l4N%+sf3aztod$O<~!a#TgNUAFCQ)+;zjh<5b?%r?cM#0ppEcD{hy_ z1VvDrW0*9Nxb7Xby-y*>&d<=* z8*SVSmDdyM7^FblD+*P>9xdqeYLE(1_qqPVjC_z(5foQ&E6*Q{2^yk@1TG8 zYhMYGSlcw|ssTtk-*Ad*mMORniRhN`uM&t!>E{vwP(FK#hDbB@#h2cdI1x8t9KK`P z-(tgMJYHXS>eQ*<+{$DY?FtQzVfp= zTUTVeYPAo~M;#)E4d8PNZ4Y^Oj=tq|2-0*I=Sk(DHglVyz&xx7D7Ma#t9vgCy(o6d z3Ie9Jhf@;Sid7B8j(}*LOO96tvoL}x=AyY%*V7(0I@38t zc_YJ4TKIITj*nDGSV~(!%48>TL%pcn3Y$JovFm&qTXmy4s@dkQkYrk@3ov&C-gbFc z9@6DK9`D5o3g?XV@%r6vep4(SF>*!PaelFdfhQIE?{uApwE5f%EtpKUoH@HL=a`&O zIEP7KFa3dm8a8C3ZaUk#TN(?l4v@dT^kHOI}C%yLn`T{-N>!aI4 z85&*$bEL-6ps(k?+2dQ}K2ik~p2*H_zXe(@0%hLBc1t{0Cn-~BUp;MO=Je}F2IeoT zb?kciG=UF;48<2pi4$eH8g<;>1uiL2Gx z=C>)K==+rGt9ea&;ZC@)8l$i@h42~*Q*dxeQq{0p=BI_7NwndRaV3VV#eLr- z=o_nCF0T&PO4@C{PMVeUc*t(}7X4jBAfjfK2 za4-rE1EU@t5oH_^<^O@e4+MW8RDDEL7^igxfkY~U|C+L&viRQz4Aq6f4>&~fI$T&z z0FF-1h6`ggbP0!N^r z|G1z4g14_nfH(#tuH)dH%tHvP;XOPE?nqAp3g!ley6X~AL@*qJM0h~ZFgU@3;OSPsjNpQ!He^Uyyr#k)L`g8fjyr_`8 zY`)H<7d0*I^8Y*@PTxPewc=NEpk{W9tMhu1>#XTJYt5VbxW`18rh7Kf>#=4T$X8@Zkd&7E7* z>htK*@|)Q`L0-#3e%VPfNYHD)2|m#7}pClM5Z>VGJkbo5WD`SmGf2f zNpp|gmtL`$6$@MnxID$i!unpWpD(`JCOq>xcSp@jeOjf{u_F`R`p)b~&beOtrz3h+<;>#^4v&rx3HkDp6#QPu(nmVf6%>2o(Gn6-qt(iX?^xqyN%e%&iHMwxbu#BfvF7?M zocOiLFNnuyVdmkJPdVf7o3CD6e^gv;_1c#a_ZkGeIi}nTI~?ULo&Q!TIbr#7#*>{4 z_dfLG#O%?+wbpR`r*3yhhD*(FB(@(l%Hkivh(aW&DFE2zcek)(J7M7 zIJ~j_@8)GPk`woCvesU|b$!HvJq+u=%gkY&rZesHn}a%LW-s&1GQXHLzk8{B{G78` z{d1$QoadL%)16z}6IQy}c5k}*J#V$u(^h_sdb=R(Lc!_o5dHnVcJvvM*5F%u9o12M~XR!&xb9Xn%Va|HtsP{>o@0y7MZj4e$t z#Ei^MF~v-$Pcmio(=su{lruC%6EiZmFt?n}WyYFRZ(weTZkC~?r7^mgk%6HFrkDw) zIujE^RCPv%CdMX42(gl)#LS%3A}$*nF8$!l>95ULRTGRXQ_{>V43Z5J%?*-_EG&(Z zlTrfjVz4~jScJ+YzQie<+8KmDlSPZDyb++P2(~)F*GnW^a}01VbY A3IG5A diff --git a/package-lock.json b/package-lock.json index 225330e..e6b1034 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1107,6 +1107,15 @@ "ini": "^1.3.4" } }, + "gmail-send": { + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/gmail-send/-/gmail-send-1.8.10.tgz", + "integrity": "sha512-QMpWwzeA64U69HzOEzI37UNc73xXkhTg8LuqsfKX9W7LjiQY3yRvViVn7ZhuJWLTV4136vsLJf2sXiZKmdykbw==", + "requires": { + "lodash": "^4.17.15", + "nodemailer": "^6.3.0" + } + }, "got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", @@ -1447,6 +1456,11 @@ } } }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -1669,6 +1683,11 @@ "tar": "^4.4.2" } }, + "nodemailer": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.6.tgz", + "integrity": "sha512-/kJ+FYVEm2HuUlw87hjSqTss+GU35D4giOpdSfGp7DO+5h6RlJj7R94YaYHOkoxu1CSaM0d3WRBtCzwXrY6MKA==" + }, "nodemailer-fetch": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", diff --git a/package.json b/package.json index 9a0b990..1a621cd 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,9 @@ "express": "^4.17.1", "express-fileupload": "^1.1.6", "fs": "0.0.1-security", + "gmail-send": "^1.8.10", "mysql": "^2.18.1", + "nodemailer": "^6.4.6", "nodemon": "^2.0.2", "pdfkit": "^0.11.0", "qr-image": "^3.2.0", diff --git a/routes/descargar_pdf.js b/routes/descargar_pdf.js index c7948b6..dc9f066 100644 --- a/routes/descargar_pdf.js +++ b/routes/descargar_pdf.js @@ -1,7 +1,6 @@ const connection = require('../conf/connection.js'); const express = require('express') -const sendmail = require('sendmail')(); var app = express(); @@ -13,26 +12,49 @@ function query(consulta) { }); }) } + + + + + + + + + app.get('/descargar_pdf', async (req, res) => { let cad=`select * from persona where id_persona=${req.query.id_persona};`; let ans=await query(cad); let correo=ans[0].correo_electronico; - console.log(ans); - sendmail({ - from: 'ciie2020@acatlan.unam.mx', - to: `${correo}`, - subject: 'Inscipción coloquio de Educacion FES-Acatlan', - html: `Gracias por inscribirte al coloquio internacional de educacion`, - // attachments: [ - // { // use URL as an attachment - // filename: 'comprobante.txt', - // path: __dirname + `/../files/lista-${req.query.id_persona}.pdf` - // } - // ] - }); - //res.download(__dirname + `/../files/lista-${req.query.id_persona}.pdf`); - return res.status(200).json({msj: "exito"}); + + const send = require('gmail-send')({ + user: 'daniel.adrian.ramirez.george@gmail.com', + pass: '753951852_dan', + to: `${correo}`, + subject: 'Comprobante de inscripción CIIE FES Acatlan', + text: 'Se adjunta el comprobante de inscripcion al Coloquio Internacional de Educacion.', // Plain text + + }); + + + const filepath = __dirname + `/../files/lista-${req.query.id_persona}.pdf`; // File to attach + + + await send({ // Overriding default parameters + //subject: 'attached '+filepath, // Override value set as default + files: [ filepath ], + }, function (err, res, full) { + if (err) + console.log('* [example 1.1] send() callback returned: res:', res); + // uncomment to see full response from Nodemailer: + // console.log('* [example 1.2] send() callback returned: full:', full); + }); + + + console.log(correo); + + return res.download(__dirname + `/../files/lista-${req.query.id_persona}.pdf`); + //return res.status(200).json({msj: "exito"}); }) module.exports = app; \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index 2915da6..3fe24bc 100644 --- a/routes/index.js +++ b/routes/index.js @@ -16,4 +16,6 @@ app.use(require('./traer_eventos')); app.use(require('./registro_evento')); app.use(require('./crear_pdf')); app.use(require('./descargar_pdf')); +app.use(require('./traer_asistente')); + module.exports = app; \ No newline at end of file diff --git a/routes/loggin_persona.js b/routes/loggin_persona.js index c497bd8..7f6e022 100644 --- a/routes/loggin_persona.js +++ b/routes/loggin_persona.js @@ -36,6 +36,7 @@ app.post('/loggin_persona', async(req, res) => { let respuesta = query(cad); // console.log(respuesta); respuesta.then(async r => { + // console.log(r, r.length); if (r.length == 0) { res.status(400).json({ error: false, msj: "Usuario o contraseña invalidos" }); @@ -45,17 +46,18 @@ app.post('/loggin_persona', async(req, res) => { //console.log(pass); let n_pasword = await bcrypt.hash(pass, 10); //console.log(data); - // console.log(n_pasword); + //console.log(n_pasword); let ban = bcrypt.compareSync(data.password, r[0].password); if (ban == true) { + delete r[0].password if (r[0].ponente == 1) { try { let c = `select * from trabajo where id_persona=${r[0].id_persona};`; let q = await query(c); if (q.length > 0) { - return res.status(200).json({ error: false, msj: "Bienvenido", paricipacion: 'Ponente', id_persona: r, trabajo: q }); + return res.status(200).json({ error: false, msj: "Bienvenido", participacion: 'Ponente', id_persona: r, trabajo: q }); } else { - return res.status(200).json({ error: false, msj: "Bienvenido", paricipacion: 'Ponente', id_persona: r }); + return res.status(200).json({ error: false, msj: "Bienvenido", participacion: 'Ponente', id_persona: r }); } @@ -65,7 +67,7 @@ app.post('/loggin_persona', async(req, res) => { return; } } else - res.status(200).json({ error: false, msj: "Bienvenido", paricipacion: 'Asistente', id_persona: r[0] }); + res.status(200).json({ error: false, msj: "Bienvenido", participacion: 'Asistente',id_persona: r }); return; } else { diff --git a/routes/registro_evento.js b/routes/registro_evento.js index f0c10dc..1ea3bde 100644 --- a/routes/registro_evento.js +++ b/routes/registro_evento.js @@ -17,15 +17,17 @@ function query(consulta) { app.post('/registro_evento', async(req, res) => { try { + console.log(req.body); let datos=req.body.eventos; let id_persona= req.body.id_persona; let pag=true; - let con=req.body.constacia; + let con=req.body.constancia; let total= req.body.total_pago; let eliminar_eventos=`select distinct f.id_evento from fecha as f inner join asistencia as a where a.id_persona=${id_persona} and a.id_fecha=f.id_fecha `; let query_eliminar= await query(eliminar_eventos); //console.log(query_eliminar); + for(let i=0; i { + if (error) reject(error); + resolve(results); + }); + }) +} + + + +app.get('/traer_asistente', async(req, res) => { + let id_persona=req.query.id_persona; + try { + let cad = `select * from persona where id_persona=${id_persona}`; + let respuesta = await query(cad); + delete respuesta.password; + let select_const= `select a.constancia from asistencia as a inner join fecha as f inner join evento as e where a.id_persona=${id_persona} and a.id_fecha=f.id_fecha and f.id_evento=e.id_evento and e.tipo_evento="Mesa tematica" and a.constancia=true;`; + let traer_cons=await query(select_const); + let cons=false; + if(traer_cons.length>0) + cons=true; + + let eventos_persona=`select distinct f.id_evento from fecha as f inner join asistencia as a where a.id_persona=${id_persona} and a.id_fecha=f.id_fecha `; + let todos_los_id_eventos= await query(eventos_persona); + let mesa=[]; + let taller=[]; + let ponencias=[]; + for(let i=0; i { let cad = `select * from evento;`; let respuesta = query(cad); //console.log(respuesta); - respuesta.then(r => { + respuesta.then(async r => { let ans={}; ans.mesa=[]; ans.taller=[]; ans.ponencia=[]; for(let i=0; i { } - res.status(200).json({ error: false, msj: "exito", data: ans }); + res.status(200).json({ error: false, msj: "exito", eventos: ans }); return; }).catch(err => { - res.status(400).json({ error: false, msj: err }); + console.log(err); + res.status(400).json({ error: true, msj: err }); }); } catch (err) { diff --git a/sql/values.sql b/sql/values.sql index c81699f..3b31a0b 100644 --- a/sql/values.sql +++ b/sql/values.sql @@ -227,7 +227,7 @@ insert into admin values(null, 'Administrador', '$2b$10$YqVknXcVK3g4H.b4X7ecVO9i insert into evento values (null,"Mesa tematica", "Mesa 9: Educación ambiental y bioética.", 60, "Sala 1"); -insert into fecha values(null , 1, '2020-08-17 12:00:00', , '2020-08-17 15:00:00'); +insert into fecha values(null , 1, '2020-08-17 12:00:00' , '2020-08-17 15:00:00'); insert into evento values (null,"Mesa tematica", "Mesa 8: Políticas Públicas para la innovación y transoformación educativa.", 60, "Sala 2");