Files
coloquio_api/routes/registro_ponencia.js
T
2020-02-14 20:13:18 -06:00

156 lines
4.5 KiB
JavaScript

const connection = require('../conf/connection.js');;
const express = require('express');
const fileUpload = require('express-fileupload');
var app = express()
app.use(fileUpload());
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('/registro_ponencia', async(req, res) => {
if (req.body.ponencia == undefined && req.body.cartel == undefined)
return res.status(400).json({ erro: true, msj: "falta el campo ponencia o el campo cartel" });
console.log(req.body.id_persona);
try {
//console.log(req.files);
if (req.files.ponencia != undefined) {
let sampleFile = req.files.ponencia;
let nombreCortado = sampleFile.name.split('.');
let extencion = nombreCortado[nombreCortado.length - 1];
let extensionValidas = ['docx', 'doc', 'odt'];
if (extensionValidas.indexOf(extencion) < 0) {
return res.status(400).json({
error: true,
msj: "extencion invalida de ponencia"
});
}
}
if (req.files.cartel != undefined) {
let sampleFile = req.files.cartel;
let nombreCortado = sampleFile.name.split('.');
let extencion = nombreCortado[nombreCortado.length - 1];
let extensionValidas = ['docx', 'doc', 'odt'];
if (extensionValidas.indexOf(extencion) < 0) {
return res.status(400).json({
error: true,
msj: "extencion invalida de ponencia"
});
}
}
} catch (err) {
console.log(err);
return res.status(400).json({
error: true,
msj: "error al verificar la extencion"
});
}
try {
if (req.files.ponencia != undefined) {
let sampleFile = req.files.ponencia;
sampleFile.mv(`files/ponencia-${req.body.id_persona}.docx`, function(err) {
if (err)
return res.status(500).send(err);
});
}
} catch (err) {
res.status(400).json({ error: true, msj: "error al subir el archivo de ponencia", type: err });
return;
}
try {
if (req.files.cartel != undefined) {
let sampleFile = req.files.cartel;
sampleFile.mv(`files/cartel-${req.body.id_persona}.docx`, function(err) {
if (err)
return res.status(500).send(err);
});
}
} catch (err) {
res.status(400).json({ error: true, msj: "error al subir el archivo de ponencia", type: err });
return;
}
let pon = req.body.ponencia;
try {
console.log(req.body.ponencia);
if (pon != undefined) {
pon = JSON.parse(pon);
console.log(pon);
let n_autor_p = depurado(pon.autor_principal);
console.log(pon.autor_principal, " ", n_autor_p);
let n_segundo = depurado(pon.segundo_autor);
let n_nombre = depurado(pon.nombre_trabajo);
let n_mesa = depurado(pon.mesa);
let cad = `insert into trabajo values(null,${req.body.id_persona}, "ponencia", '${n_nombre}',
'${n_autor_p}', '${n_segundo}', '${n_mesa}', false, false, false);`;
let respuesta = await query(cad);
}
} catch (err) {
res.status(400).json({ error: true, msj: "error al registrar ponencia" });
return;
}
let car = req.body.cartel;
try {
if (car != undefined) {
car = JSON.parse(car);
console.log(car);
let n_autor_p = depurado(car.autor_principal);
let n_segundo = depurado(car.segundo_autor);
let n_nombre = depurado(car.nombre_trabajo);
let n_mesa = depurado(car.mesa);
let cad = `insert into trabajo values(null,${req.body.id_persona}, "cartel", '${n_nombre}',
'${n_autor_p}', '${n_segundo}', '${n_mesa}', false, false, false);`;
let respuesta = await query(cad);
}
} catch (err) {
res.status(400).json({ error: true, msj: "al registrar el cartel" });
return;
}
res.status(200).json({ error: false, msj: "exito " });
return;
});
module.exports = app