DiscofyAPI/src/database/consultas.js
2021-06-03 18:45:15 +02:00

222 lines
7.1 KiB
JavaScript

const mariadb = require('./_db');
async function getUsers(){
try {
let conn = await mariadb.getConn();
const rows = await conn.query("SELECT * FROM user");
conn.release();
return rows;
}
catch(err){
console.log("No se pudo acceder a la BD: "+err);
}
}
module.exports.getUsers = getUsers;
async function userLogin(username, password){
try {
let conn = await mariadb.getConn();
const rows = await conn.query("SELECT userID, discotecaID, userType, username FROM user WHERE username = ? AND password = ?", [username, password]);
conn.release();
if (rows){
return rows;}
}
catch(err){
console.log("No se pudo acceder a la BD: "+err);
}
}
module.exports.userLogin = userLogin;
async function getDiscoteca(discotecaId){
try{
let conn = await mariadb.getConn();
const rows = await conn.query("SELECT discotecaID, nombre, telefono, localizacion FROM discoteca WHERE discotecaID = ?", [discotecaId]);
conn.release();
if (rows){
return rows;}
}catch(err){
console.log("No se pudo acceder a la BD: "+err);
}
}
module.exports.getDiscoteca = getDiscoteca;
async function addEvento(evento){
try{
let conn = await mariadb.getConn();
var rows = await conn.query ("SELECT * FROM evento WHERE id = ?", [evento.id]);
if (!rows.length>0){
rows = await conn.query
("INSERT INTO evento (discotecaID, nombre, localizacion, fecha, hora, descripcion, precio1, precio2) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
[evento.discotecaID, evento.nombre, evento.localizacion, evento.fecha, evento.hora, evento.descripcion, evento.precio1, evento.precio2]);
conn.release();
}
else{
rows = await conn.query
("UPDATE evento SET discotecaID = ?, nombre = ?, localizacion = ?, fecha = ?, hora = ?, descripcion = ?, precio1 = ?, precio2 = ? WHERE id = ?",
[evento.discotecaID, evento.nombre, evento.localizacion, evento.fecha, evento.hora, evento.descripcion, evento.precio1, evento.precio2, evento.id]);
conn.release();
}
if (rows){
return rows;}
}catch(err){
console.log("No se pudo acceder a la BD: "+err);
}
}
module.exports.addEvento = addEvento;
async function getEventos(){
try{
let conn = await mariadb.getConn();
const rows = await conn.query("SELECT id, discotecaID, nombre, localizacion, fecha, hora, descripcion, precio1, precio2 FROM evento");
conn.release();
if(rows){
return rows;}
}catch(err){
console.log("No se pudo acceder a la BD: "+err);
}
}
module.exports.getEventos = getEventos;
async function getEventosDiscoteca(discotecaId){
try{
let conn = await mariadb.getConn();
const rows = await conn.query("SELECT id, discotecaID, nombre, localizacion, fecha, hora, descripcion, precio1, precio2 FROM evento WHERE discotecaID = ?", [discotecaId.id]);
conn.release();
if (rows){
return rows;}
}catch(err){
console.log("No se pudo acceder a la BD: "+err);
}
}
module.exports.getEventosDiscoteca = getEventosDiscoteca;
async function addReserva(reserva){
try{
let conn = await mariadb.getConn();
var rows = await conn.query("SELECT * FROM reserva WHERE UserID = ? AND EventoID = ?", [reserva.UserID, reserva.EventoID]);
if(!rows[0]){ //primero inserta en la tabla codigo, y luego en la tabla reserva
const CodigoUnico = await conn.query("INSERT INTO codigo (UserID, codigo, numReservas) VALUES (?, ?, ?)",
[reserva.UserID, reserva.codigoUnico, 0]);
const codigoID = await conn.query("SELECT id FROM codigo WHERE codigo = ?", [reserva.codigoUnico]);
reserva.codigoUnicoID = codigoID[0].id;
if(reserva.descuentoPorciento){ //arreglar este if
rows = await conn.query("INSERT INTO reserva (UserID, EventoID, codigoUnicoID, codigoDescuento, descuentoPorciento) VALUES (?, ?, ?, ?, ?)",
[reserva.UserID, reserva.EventoID, reserva.codigoUnicoID, reserva.codigoDescuento, reserva.descuentoPorciento]);
}
else{
rows = await conn.query("INSERT INTO reserva (UserID, EventoID, codigoUnicoID, codigoDescuento) VALUES (?, ?, ?, ?)",
[reserva.UserID, reserva.EventoID, reserva.codigoUnicoID, reserva.codigoDescuento]);
}
await conn.query("UPDATE codigo SET numReservas = numReservas + 1 WHERE codigo = ?", [reserva.codigoDescuento]);
conn.release();
return reserva;
}
else{
console.log("Ya hay una reserva para este evento.");
conn.release();
}
}catch(err){
console.log("No se pudo acceder a la BD: "+err);}
}
module.exports.addReserva = addReserva;
async function comprobarDescuento(reserva){
try{
let conn = await mariadb.getConn();
const evento = await conn.query("SELECT * FROM evento WHERE id = ?", [reserva.EventoID]);
const tipoDescuento = evento[0].tipoDescuento;
if(tipoDescuento){
const porciento = await conn.query("SELECT porciento FROM descuentos WHERE id = ?", [tipoDescuento]);
conn.release();
return porciento[0].porciento;
}
else{
conn.release();
return 0;
}
}catch(err){
console.log("No se pudo acceder a la BD: "+err);
}
}
module.exports.comprobarDescuento = comprobarDescuento;
async function activarCodigo(reserva){
try{
let conn = await mariadb.getConn();
const codigo = await conn.query("SELECT id FROM codigo WHERE codigo = ?", [reserva.codigoDescuento]);
conn.release();
console.log(codigo);
if (codigo.length>0){
const reservaOriginal = await conn.query("SELECT EventoID FROM reserva WHERE codigoUnicoID = ?", [codigo[0].id]);
conn.release();
console.log(reservaOriginal);
if (reservaOriginal[0].EventoID == reserva.EventoID){
console.log("Codigo válido");
return codigo;
}
else{
console.log("Código inválido");
reserva.codigoDescuento='';
return null;
}
}
else{
console.log("Código inválido");
return null;
}
}catch(err){
console.log("No se pudo acceder a la BD: "+err);
}
}
module.exports.activarCodigo = activarCodigo;
async function getCodigos(usuario){
try{
let conn = await mariadb.getConn();
const codigos = await conn.query("SELECT UserID, codigo, numReservas FROM codigo WHERE UserID = ?", [usuario.userID]);
conn.release();
if(codigos.length>0){
return codigos;
}
else return null;
}catch(err){
console.log("No se pudo acceder a la BD: "+err);
}
}
module.exports.getCodigos = getCodigos;