joclud-app/back/libs/mysql.js

181 lines
5 KiB
JavaScript

const mysql = require("mysql");
function getConnection() {
return mysql.createConnection({
host: process.env.MysqlHost,
user: process.env.MysqlUser,
password: process.env.MysqlPassword,
database: process.env.MysqlDb,
});
}
// +-----------------------------------+
// | GAMES |
// +-----------------------------------+
function getGames(connection) {
return new Promise((resolve, reject) => {
connection.query(
`SELECT id, title, subtitle, type, players, duration, ages FROM games`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
}
);
});
}
function getGame(connection, gameid) {
return new Promise((resolve, reject) => {
connection.query(
`SELECT * FROM games WHERE id = ${gameid}`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
}
)
})
}
function addGame(connection, id, title, subtitle, edition, type, players, duration, ages, languages, universe, ranges, categories, themes, mecanisms, editor, authors, illustrators) {
console.log(`INSERT INTO games (id, title, subtitle, edition, type, players, duration, ages, languages, universe, ranges, categories, themes, mecanisms, editor, authors, illustrators) VALUES (${id}, "${title}", "${subtitle}", ${edition}, "${type}", "${players}", "${duration}", "${ages}", "${languages}", "${universe}", "${ranges}", "${categories}", "${themes}", "${mecanisms}", "${editor}", "${authors}", "${illustrators}")`)
return new Promise((resolve, reject) => {
connection.query(
`INSERT INTO games (id, title, subtitle, edition, type, players, duration, ages, languages, universe, ranges, categories, themes, mecanisms, editor, authors, illustrators) VALUES (${id}, "${title}", "${subtitle}", ${edition}, "${type}", "${players}", "${duration}", "${ages}", "${languages}", "${universe}", "${ranges}", "${categories}", "${themes}", "${mecanisms}", "${editor}", "${authors}", "${illustrators}")`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
}
)
})
}
// +-----------------------------------+
// | HELPERS |
// +-----------------------------------+
function addHelper(connection, game_id, user_id) {
return new Promise((resolve, reject) => {
connection.query(
`INSERT INTO helpers (game_id, user_id) VALUES (${game_id}, ${user_id})`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
}
)
})
}
function removeHelper(connection, game_id, user_id) {
return new Promise((resolve, reject) => {
connection.query(
`DELETE FROM helpers WHERE game_id = ${game_id} and user_id = ${user_id}`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
}
);
});
}
function getHelpers(connection, game_id) {
return new Promise((resolve, reject) => {
connection.query(
`SELECT name, helpers.user_id FROM helpers JOIN users ON helpers.user_id = users.id WHERE game_id = ${game_id}`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
}
)
})
}
// +-----------------------------------+
// | AUTH |
// +-----------------------------------+
function getUser(connection, username) {
return new Promise((resolve, reject) => {
connection.query(
`SELECT * FROM users WHERE username = "${username}"`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
})
})
}
function addUser(connection, username, name, lastname, password) {
return new Promise((resolve, reject) => {
connection.query(
`INSERT INTO users(username, name, lastname, password) VALUES("${username}", "${name}", "${lastname}", "${password}")`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
})
})
}
// +-----------------------------------+
// | ADMIN |
// +-----------------------------------+
function getUnverifiedUsers(connection) {
return new Promise((resolve, reject) => {
connection.query(
`SELECT * FROM users WHERE verified = 0`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
})
})
}
function setVerified(connection, username) {
return new Promise((resolve, reject) => {
connection.query(
`UPDATE users SET verified = 1 WHERE username = "${username}"`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
})
})
}
module.exports = {
getConnection,
getGames,
getGame,
addGame,
addHelper,
removeHelper,
getHelpers,
getUser,
addUser,
getUnverifiedUsers,
setVerified,
};