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 { 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;