Files
PortalApi/routes/actualizarLibro.js

234 lines
9.6 KiB
JavaScript

const connection = require('../conf/connection.js');;
const express = require('express');
const fileUpload = require('express-fileupload');
var path = require('path');
const fs = require("fs");
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 corregir(cad){
var recor = String.fromCharCode(13);
cad = cad.split(recor);
let nuevocad="";
for(let i=0; i<cad.length; i++){
if(i!==0 && cad[i]!=="\n" )
nuevocad = nuevocad + cad[i];
else
if(cad[i]!== "\n")
nuevocad = cad[i]
}
return nuevocad;
}
app.post('/actualizarLibro', async(req, res) => {
let data = req.body;
if(req.body.type==='addLibro'){
if(req.body.seccion === 'datos'){
console.log('entro a datos', req.body);
try{
let titulo = corregir(data.titulo);
let autor = corregir(data.autor);
let categoria = data.categoria;
let paginas = data.paginas;
let isbn = data.isbn;
let precio = data.precio;
let edicion = corregir(data.edicion);
let year = data.year;
let descripcion = corregir(data.descripcion);
let version = data.version;
let sqlInsertString = `INSERT INTO Libro values ( null, '${isbn}' , '${titulo}', '${categoria}', '${autor}', ${paginas}, '${edicion}', '${precio}', '${version}', '${descripcion}', ${year}); `;
let idLibro = null;
await query(sqlInsertString);
let sqlString = `SELECT LAST_INSERT_ID() as idLibro;`;
let sqlAnswer = await query(sqlString);
idLibro = sqlAnswer[0].idLibro;
res.status(200).json({error: false, msj: 'Datos guardados', value: true, idLibro: idLibro});
return;
}
catch (error){
console.log(error);
res.status(400).json({error: true, mensaje: 'Ocurrio un error al guardar en la BD', descripcion: error, value: false});
return;
}
}
if (req.body.seccion === 'imagen'){
console.log('entro a imagen', req.body);
if (req.files === null || req.files.imagen===null)
{
res.status(400).json({error: true, msj: `No se pudo cargar los archivos de imagen y pdf`, value: false});
return;
}
try{
let idLibro = req.body.idLibro;
let imagen = req.files.imagen;
let stringUpdate = `INSERT INTO Imagen values (null, ${idLibro}, '${imagen.name}' )`;
await query(stringUpdate);
imagen.mv( path.join('.', `/routes/imagenLibro/${imagen.name}`), function(err) {
if (err) return res.status(400).json({ error: true, msj: "Error al guardar la imagen del libro", value: false });
});
res.status(200).json({error: false, msj: 'Se agrego con exito el libro', value: true});
return;
}
catch (error){
console.log(error);
res.status(400).json({error: true, mensaje: 'Ocurrio un error al guardar en la BD', descripcion: error, value: false});
return;
}
}
if(req.body.seccion === 'pdf'){
console.log('entro a pdf', req.body);
if (req.files === null || req.files.pdf===null)
{
res.status(400).send(`No se pudo cargar los archivos de imagen y pdf`);
return;
}
try{
let idLibro = req.body.idLibro;
let pdf = req.files.pdf;
stringUpdate = `INSERT INTO Visualizacion values (null, ${idLibro}, '${pdf.name}' );`;
await query(stringUpdate);
pdf.mv( path.join('.', `/routes/pdf/${pdf.name}`), function(err) {
if (err) return res.status(400).json({ error: true, msj: "Error al guardar el pdf del libro", value: false });
});
res.status(200).json({error: false, msj: 'Se agrego con exito el libro', value: true});
return;
}
catch (error){
console.log(error);
res.status(400).json({error: true, mensaje: 'Ocurrio un error al guardar en la BD', descripcion: error, value: false});
return;
}
}
res.status(200).json({error: false, msj: 'termino'});
return;
}
else{
console.log('entro a actulizar: ');
console.log('archivos', req.files);
console.log('datos', req.body)
if(typeof(data.idLibro) === 'undefined'){
res.status(400).json({error: true, msj: 'Falta el Id del libro como parametro'});
return;
}
try{
let stringUpdate = `Update Libro set `;
let con=0;
if ( typeof(data.titulo) !== 'undefined'){
stringUpdate += `titulo = '${data.titulo}'`;
con++;
}
if ( typeof(data.autor) !== 'undefined'){
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
stringUpdate += ` autor = '${data.autor}'`;
con++;
}
if ( typeof(data.categoria) !== 'undefined'){
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
stringUpdate += ` categoria = '${data.categoria}'`;
con++;
}
if ( typeof(data.paginas) !== 'undefined'){
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
stringUpdate += ` paginas = '${data.paginas}'`;
con++;
}
if ( typeof(data.isbn) !== 'undefined'){
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
stringUpdate += ` isbn = '${data.isbn}'`;
con++;
}
if ( typeof(data.precio) !== 'undefined'){
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
stringUpdate += ` precio = '${data.precio}'`;
con++;
}
if ( typeof(data.edicion) !== 'undefined'){
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
stringUpdate += ` impresion = '${data.edicion}'`;
con++;
}
if ( typeof(data.year) !== 'undefined'){
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
stringUpdate += ` year = '${data.year}'`;
con++;
}
if ( typeof(data.descripcion) !== 'undefined'){
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
stringUpdate += ` descripcion = '${data.descripcion}'`;
con++;
}
if ( typeof(data.version) !== 'undefined'){
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
stringUpdate += ` version = '${data.version}'`;
}
stringUpdate += ` where idLibro = ${data.idLibro};`;
try{
if(con>0)
await query(stringUpdate);
}
catch (error){
console.log(error);
res.status(400).json({error: true, msj: 'Error al actualizar en la base de datos '});
return;
}
if (req.files !== null && req.files.imagen !== undefined) {
let imagen = req.files.imagen;
console.log(imagen);
let stringUpdate =`Update Imagen set ruta = "${imagen.name}" where idLibro = ${data.idLibro};`;
console.log(stringUpdate)
let answerUpdata = await query(stringUpdate);
console.log(answerUpdata);
imagen.mv( path.join('.', `/routes/imagenLibro/${imagen.name}`), function(err) {
if (err){
console.log(err);
return res.status(400).json({ error: true, msj: "Error al guardar la imagen del libro" });
}
});
}
if (req.files !== null && req.files.pdf !== undefined) {
let pdf = req.files.pdf;
stringUpdate = `Update Visualizacion set ruta = "${pdf.name}" where idLibro = ${data.idLibro};`;
await query(stringUpdate);
pdf.mv( path.join('.', `/routes/pdf/${pdf.name}`), function(err) {
if (err) {
console.log(err);
return res.status(400).json({ error: true, msj: "Error al guardar el pdf del libro" });
}
});
}
res.status(200).json({error: false, msj: 'Se agrego con exito el libro'});
return;
}
catch(error){
console.log(error);
res.status(400).json({error: true, msj: 'Sucedio un error al Actualizar el libro', desc: error});
return;
}
}
});
module.exports = app;