const connection = require('../conf/connection.js'); const express = require('express') var app = express(); var fs = require('fs'); var busboy = require('connect-busboy'); var path = require('path'); app.use(busboy()); 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; 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; try{ await query(sqlInsertString); let sqlString = `SELECT LAST_INSERT_ID() as idLibro;`; let sqlAnswer = await query(sqlString); idLibro = sqlAnswer[0].idLibro; } catch (error){ res.status(400).json({error: true, mensaje: 'Ocurrio un error al guardar en la BD', descripcion: error}); return; } req.pipe(req.busboy); req.busboy.on('file',async function (fieldname, file, filename) { if(fieldname === 'imagen'){ stringUpdate = `INSERT INTO Imagen values (null, ${idLibro}, '${fieldname}' )`; query(stringUpdate).then( ()=>{ let saveTo = path.join('.', `/routes/imagenLibro/${filename}`); file.pipe(fs.createWriteStream(saveTo)).catch(error =>{ res.status(400).json({error: true, msj: 'No se pudo guardar la imagen del libro', desc: error}); }) }).catch(error =>{ res.status(400).json({error: true, msj: 'No se pudo guardar la ruta del libro en la BD', desc: error}); }); } if(fieldname === 'pdf'){ stringUpdate = `INSERT INTO Visualizacion values (null, ${idLibro}, '${fieldname}' );`; query(stringUpdate).then( ()=>{ let saveTo = path.join('.', `/routes/pdf/${filename}`); file.pipe(fs.createWriteStream(saveTo)).catch(error =>{ res.status(400).json({error: true, msj: 'No se pudo guardar el pdf del libro', desc: error}); }) }).catch(error =>{ res.status(400).json({error: true, msj: 'No se pudo guardar la ruta del pdf del libro en la BD', desc: error}); }); } }); res.status(200).json({error: false, msj: 'Se agrego con exito el libro'}); return; } catch (error){ res.status(400).json({error: true, msj: `No se pudo agregar el libro`, desc: error}); console.log(`Ocurrio un error al insertar en la base de datos msj: ${error}`); return; } }); module.exports = app;