Files
2021-01-06 04:31:31 -06:00

161 lines
5.2 KiB
JavaScript

const connection = require('../conf/connection.js');
const express = require('express')
var app = express();
var xlsx = require('node-xlsx');
var fs = require('fs');
var busboy = require('connect-busboy');
var path = require('path');
const readXlsxFile = require('read-excel-file/node');
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<cad.length; i++){
if(i!==0 && cad[i]!=="\n" )
nuevocad = nuevocad + cad[i];
else
if(cad[i]!== "\n")
nuevocad = cad[i]
}
return nuevocad;
}
async function readExecel ( path )
{
console.log(`Entreoasdas`);
console.log(`Entro a leer el excel`);
let workbook;
try{
await readXlsxFile(`${__dirname}/ArchivosCarga/cargaLibro.xlsx`).then(async (rows) => {
//console.log(`Este es el renglon: ${rows}`);
for(let i=1; i < rows.length ; i++)
{
try{
let titulo = corregir(rows [i][0]);
let autor = corregir(rows [i][1]);
let categoria = rows [i][2];
let paginas = rows [i][3];
let isbn = rows [i][4];
let precio = rows [i][5];
let edicion = corregir(rows [i][6]);
let year = rows [i][7];
let descripcion = corregir(rows [i][11]);
let version = rows [i][8];
let imagen = rows [i][10];
let pdfVis = rows [i][12];
let sqlString = `INSERT INTO Libro values ( null, '${isbn}' , '${titulo}', '${categoria}', '${autor}', ${paginas}, '${edicion}', '${precio}', '${version}', '${descripcion}', ${year}); `;
try{
await query(sqlString);
}
catch (error){
console.log(`string : ${sqlString}`);
console.log(`Ocurrio un error al insertar en la base de datos msj: ${error}`);
new TypeError (`Error al insertar en la base de datos msj: ${error}`);
return;
}
sqlString = `SELECT LAST_INSERT_ID() as idLibro;`;
let sqlAnswer = await query(sqlString);
sqlAnswer = sqlAnswer[0];
let idLibro = sqlAnswer.idLibro;
sqlString = `INSERT INTO Imagen values (null, ${idLibro}, '${imagen}' );`;
try{
await query(sqlString);
}
catch (error){
console.log(`string : ${sqlString}`);
console.log(`Ocurrio un error al insertar en la base de datos msj: ${error}`);
new TypeError (`Error al insertar en la base de datos msj: ${error}`);
return;
}
sqlString = `INSERT INTO Visualizacion values (null, ${idLibro}, '${pdfVis}' );`;
try{
await query(sqlString);
}catch (error){
console.log(`string : ${sqlString}`);
console.log(`Ocurrio un error al insertar en la base de datos msj: ${error}`);
new TypeError (`Error al insertar en la base de datos msj: ${error}`);
return;
}
}
catch(error){
console.log(` **** Hay un error: ${error}`);
}
}
});
return;
}
catch (error){
console.log(`string : ${sqlString}`);
console.log(`Ocurrio un error al insertar en la base de datos msj: ${error}`);
new TypeError (`Error al insertar en la base de datos msj: ${error}`);
return;
}
}
app.post('/cargaLibro', async(req, res) => {
var fstream;
try{
console.log(`Entro`);
req.pipe(req.busboy);
req.busboy.on('file',async function (fieldname, file, filename) {
console.log("Uploading: " + filename);
let saveTo = path.join('.', `/routes/ArchivosCarga/cargaLibro.xlsx`);
console.log('Uploading: ' + saveTo);
file.pipe(fs.createWriteStream(saveTo));
await readExecel(`cargaLibro.xlsx`);
res.status(200).json({error: false, msj: `Se inserto con exito`});
});
}
catch(error){
console.log(`Np se pudo cargar el libro`);
res.status(400).json({error: true, msj: `No se pudo cargar el libro`});
}
});
//
module.exports = app;