code structure improvement

This commit is contained in:
Lukian 2024-09-16 17:21:57 +02:00
parent 3a5ae2dd7d
commit 5e8ada02f3
12 changed files with 68 additions and 60 deletions

2
.dockerignore Normal file
View file

@ -0,0 +1,2 @@
/node_modules
package-lock.json

View file

@ -1,7 +1,4 @@
FROM node:latest
WORKDIR /app
COPY . /app
CMD ["npm", "run", "start"]
CMD npm start

View file

@ -1,7 +1,7 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const {getUnverifiedUsers} = require("../../../libs/mysql.js")
const { getConnection, getUnverifiedUsers } = require("../../../libs/mysql.js")
const router = express.Router();
@ -26,7 +26,9 @@ router.post('/', async (req, res) => {
return res.status(400).send({error: "invalid token"});
}
const users = await getUnverifiedUsers();
const connection = await getConnection();
const users = await getUnverifiedUsers(connection);
connection.end();
res.status(200).send(users);
});

View file

@ -1,7 +1,7 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const {setVerified, getUser} = require("../../../libs/mysql.js")
const { getConnection, setVerified, getUser } = require("../../../libs/mysql.js")
const router = express.Router();
@ -26,7 +26,9 @@ router.post('/', async (req, res) => {
return res.status(400).send({error: "invalid token"});
}
const user = await getUser(username);
const connection = await getConnection();
const user = await getUser(connection, username);
if (!user[0]) {
return res.status(400).send({error: "invalid userid"});
@ -37,6 +39,7 @@ router.post('/', async (req, res) => {
}
await setVerified(username);
connection.end()
res.status(200).send({message: "user verified"});
});

View file

@ -2,14 +2,16 @@ const express = require('express');
const jwt = require('jsonwebtoken');
const sha256 = require("sha256");
const { getUser } = require("../../../libs/mysql");
const { getConnection, getUser } = require("../../../libs/mysql");
const router = express.Router();
router.post('/', async (req, res) => {
const {username, password} = req.body;
const user = await getUser(username);
const connection = await getConnection();
const user = await getUser(connection, username);
if (!user[0]) {
return res.status(400).send({error: "wrong login informations"});

View file

@ -1,7 +1,7 @@
const express = require('express');
const sha256 = require("sha256");
const { getUser, addUser } = require("../../../libs/mysql");
const { getConnection, getUser, addUser } = require("../../../libs/mysql");
const router = express.Router();
@ -12,13 +12,16 @@ router.post('/', async (req, res) => {
return res.status(400).send({error: "invalid request"});
}
const user = await getUser(username);
const connection = await getConnection();
const user = await getUser(connection, username);
if (user[0]) {
return res.status(400).send({error: "user already exist"});
}
await addUser(username, name, lastname, sha256(password));
await addUser(connection, username, name, lastname, sha256(password));
connection.end();
res.status(200).send({message: "success"});
});

View file

@ -1,7 +1,7 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const {addHelper, getGame} = require("../../../libs/mysql.js")
const { getConnection, addHelper, getGame } = require("../../../libs/mysql.js")
const router = express.Router();
@ -23,7 +23,9 @@ router.post('/', async (req, res) => {
return res.status(400).send({error: "token expired"});
}
const game = await getGame(gameid);
const connection = getConnection();
const game = await getGame(connection, gameid);
if (!game[0]) {
return res.status(400).send({error: "this game doesn't exist"});
@ -33,7 +35,8 @@ router.post('/', async (req, res) => {
return res.status(400).send({error: "you are already an helper for this game"});
}
await addHelper(user.user.username, gameid);
await addHelper(connection, user.user.username, gameid);
connection.end();
} catch (error) {
console.log(error);
return res.status(400).send({error: "invalid token"});

View file

@ -1,7 +1,7 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const {getGame} = require("../../../libs/mysql.js")
const { getConnection, getGame } = require("../../../libs/mysql.js")
const router = express.Router();
@ -26,7 +26,9 @@ router.post('/', async (req, res) => {
return res.status(400).send({error: "invalid token"});
}
const game = await getGame(gameid)
const connection = getConnection();
const game = await getGame(connection, gameid)
connection.end();
if (!game[0]) {
return res.status(400).send({error: "this game doesn't exist in the data base"})

View file

@ -1,7 +1,7 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const {getHelpers} = require("../../../libs/mysql.js")
const { getConnection, getHelpers } = require("../../../libs/mysql.js")
const router = express.Router();
@ -26,7 +26,9 @@ router.post('/', async (req, res) => {
return res.status(400).send({error: "invalid token"});
}
const connection = getConnection();
const helpers = await getHelpers(gameid)
connection.end();
if (!helpers[0]) {
return res.status(400).send({error: "this game doesn't exist in the data base"})

View file

@ -1,7 +1,7 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const {getGames} = require("../../../libs/mysql.js")
const { getConnection, getGames } = require("../../../libs/mysql.js")
const router = express.Router();
@ -22,7 +22,9 @@ router.post('/', async (req, res) => {
return res.status(400).send({error: "invalid token"});
}
const connection = getConnection();
const games = await getGames();
connection.end();
res.status(200).send(games);
});

View file

@ -1,7 +1,7 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const {removeHelper, getGame} = require("../../../libs/mysql.js")
const { getConnection, removeHelper, getGame } = require("../../../libs/mysql.js")
const router = express.Router();
@ -23,6 +23,7 @@ router.post('/', async (req, res) => {
return res.status(400).send({error: "token expired"});
}
const connection = getConnection();
const game = await getGame(gameid);
if (!game[0]) {
@ -34,6 +35,7 @@ router.post('/', async (req, res) => {
}
await removeHelper(user.user.username, gameid);
connection.end()
} catch {
return res.status(400).send({error: "invalid token"});
}

View file

@ -1,19 +1,21 @@
const mysql = require("mysql");
const con = mysql.createConnection({
host: process.env.MysqlHost,
user: process.env.MysqlUser,
password: process.env.MysqlPassword,
database: process.env.MysqlDb,
});
export function getConnection() {
return mysql.createConnection({
host: process.env.MysqlHost,
user: process.env.MysqlUser,
password: process.env.MysqlPassword,
database: process.env.MysqlDb,
});
}
// +-----------------------------------+
// | GAMES |
// +-----------------------------------+
function getGames() {
export function getGames(connection) {
return new Promise((resolve, reject) => {
con.query(
connection.query(
`SELECT id, title, subtitle, type, players, duration, ages FROM games`,
(error, result) => {
if (error) {
@ -25,9 +27,9 @@ function getGames() {
});
}
function getGame(gameid) {
export function getGame(connection, gameid) {
return new Promise((resolve, reject) => {
con.query(
connection.query(
`SELECT * FROM games WHERE id = "${gameid}"`,
(error, result) => {
if (error) {
@ -39,9 +41,9 @@ function getGame(gameid) {
})
}
function addHelper(username, gameid) {
export function addHelper(connection, username, gameid) {
return new Promise((resolve, reject) => {
con.query(
connection.query(
`UPDATE games SET helpers = JSON_ARRAY_APPEND(helpers, '$', "${username}") WHERE id = ${gameid}`,
(error, result) => {
if (error) {
@ -53,9 +55,9 @@ function addHelper(username, gameid) {
})
}
function removeHelper(username, gameid) {
export function removeHelper(connection, username, gameid) {
return new Promise((resolve, reject) => {
con.query(
connection.query(
`UPDATE games SET helpers = JSON_REMOVE(helpers, JSON_UNQUOTE(JSON_SEARCH(helpers, 'one', "${username}"))) WHERE id = ${gameid}`,
(error, result) => {
if (error) {
@ -67,9 +69,9 @@ function removeHelper(username, gameid) {
});
}
function getHelpers(gameid) {
export function getHelpers(connection, gameid) {
return new Promise((resolve, reject) => {
con.query(
connection.query(
`SELECT helpers FROM games WHERE id = "${gameid}"`,
(error, result) => {
if (error) {
@ -85,9 +87,9 @@ function getHelpers(gameid) {
// | AUTH |
// +-----------------------------------+
function getUser(username) {
export function getUser(connection, username) {
return new Promise((resolve, reject) => {
con.query(
connection.query(
`SELECT * FROM users WHERE username = "${username}"`,
(error, result) => {
if (error) {
@ -98,9 +100,9 @@ function getUser(username) {
})
}
function addUser(username, name, lastname, password) {
export function addUser(connection, username, name, lastname, password) {
return new Promise((resolve, reject) => {
con.query(
connection.query(
`INSERT INTO users(username, name, lastname, password) VALUES("${username}", "${name}", "${lastname}", "${password}")`,
(error, result) => {
if (error) {
@ -115,9 +117,9 @@ function addUser(username, name, lastname, password) {
// | ADMIN |
// +-----------------------------------+
function getUnverifiedUsers() {
export function getUnverifiedUsers(connection) {
return new Promise((resolve, reject) => {
con.query(
connection.query(
`SELECT * FROM users WHERE verified = 0`,
(error, result) => {
if (error) {
@ -128,9 +130,9 @@ function getUnverifiedUsers() {
})
}
function setVerified(username) {
export function setVerified(connection, username) {
return new Promise((resolve, reject) => {
con.query(
connection.query(
`UPDATE users SET verified = 1 WHERE username = "${username}"`,
(error, result) => {
if (error) {
@ -140,17 +142,3 @@ function setVerified(username) {
})
})
}
module.exports = {
getGames,
getGame,
addHelper,
removeHelper,
getHelpers,
getUser,
addUser,
getUnverifiedUsers,
setVerified,
};