diff --git a/api/Classes/Games.js b/api/Classes/Games.js new file mode 100644 index 0000000..79f81fa --- /dev/null +++ b/api/Classes/Games.js @@ -0,0 +1,75 @@ +import { pool } from '../modules/database.js'; + +class Game { + constructor(id = null, playerId) { + this.id = id; + this.player = playerId; + this.questions = []; + } + + async create() { + try { + const [rows] = await pool.execute( + 'INSERT INTO games (player) VALUES (?)', [this.player], + ); + this.id = rows.insertId; + return true; + } + catch (error) { + console.error(error); + return false; + } + } + + async generateQuestions(themeId) { + try { + const [rows] = await pool.execute( + 'SELECT * FROM questions ORDER BY RAND() LIMIT 10 WHERE theme = ?', [themeId], + ); + rows.forEach(row => { + const question = new Question(row.id, row.question); + this.questions.push(question); + }); + return true; + } + catch (error) { + console.error(error); + return false; + } + } +} + +class Question { + constructor(id = null, question = null) { + this.id = id; + this.question = question; + this.answers = []; + } + + async fetchAnswers() { + try { + const [rows] = await pool.execute( + 'SELECT * FROM answers WHERE question = ?', [this.id], + ); + rows.forEach(row => { + const answer = new Answer(row.id, row.answer, row.correct); + this.answers.push(answer); + }); + return true; + } + catch (error) { + console.error(error); + return false; + } + } +} + +class Answer { + constructor(id = null, answer = null, correct = null) { + this.id = id; + this.answer = answer; + this.correct = correct; + } +} + +export { Game }; \ No newline at end of file diff --git a/api/database.sql b/api/database.sql index b2a33af..f00b371 100644 --- a/api/database.sql +++ b/api/database.sql @@ -5,8 +5,8 @@ CREATE DATABASE IF NOT EXISTS `nuitdelinfo2023` COLLATE utf8mb4_unicode_ci; DROP USER IF EXISTS 'nuitdelinfo2023'; -CREATE USER 'nuitdelinfo2023'@'%' IDENTIFIED BY 'PASSWORD'; -GRANT ALL PRIVILEGES ON airjet.* TO 'nuitdelinfo2023'@'%'; +CREATE USER 'nuitdelinfo2023'@'localhost' IDENTIFIED BY 'PASSWORD'; +GRANT ALL PRIVILEGES ON nuitdelinfo2023.* TO 'nuitdelinfo2023'@'localhost'; USE `nuitdelinfo2023`; diff --git a/api/routes/test.js b/api/routes/test.js index 567566d..1f074dc 100644 --- a/api/routes/test.js +++ b/api/routes/test.js @@ -4,7 +4,7 @@ const router = express.Router(); router.get('/', (req, res) => { - res.status(200).json({ code: 200, message:'Received GET request' }); + res.status(200).json({ code: 200, message:'Received GET request from ip:' + req.ip }); });