const connection = require('../conf/connection.js'); const express = require('express') var app = express(); function query(consulta) { return new Promise(function(resolve, reject) { connection.query(`${consulta}`, (error, results, files) => { if (error) reject(error); resolve(results); }); }) } function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min)) + min; } function getRandom(mini, maxi){ let a,b,c; for(let i=1; i<=3; i++){ if(i==3){ c=a; while(c===a || c===b){ console.log(`valores de a: ${a} ${b}`); c=getRandomInt(mini,maxi); } } else if(i==2){ b=a; while(a===b){ b=getRandomInt(mini,maxi); } } else{ a=getRandomInt(mini,maxi); } } return [a,b,c]; } app.get('/librosSimilares', async(req, res) => { let data = req.query; if( typeof( data.categoria ) === 'undefined' ){ res.status(400).json({error: true, msj: 'Falta la categoria del libro como parametro'}); return; } let sqlString = `SELECT * FROM Libro WHERE categoria='${data.categoria}' LIMIT 35;`; console.log(` Esta es la cadena : ${sqlString}`); let respuestaSql = await query(sqlString); let maxi = respuestaSql.length; let mini = 0; let values = getRandom(mini, maxi); respuestaSql = [respuestaSql[values[0]], respuestaSql[values[1]], respuestaSql[values[2]] ]; if(respuestaSql.length === 0 ){ res.status(400).json({error: true, msj: 'No se tienen libros similares'}); return; } try{ res.status(200).json({error:false, msj: 'exito', data: respuestaSql}) } catch(error){ res.status(400).json({error: true, msj: 'No se pudo obtener los libros similares', desc: error}); return; } }); module.exports = app