From 3b2e876af293697941d966e1cdd68e5a79cfdf39 Mon Sep 17 00:00:00 2001 From: Thomas Chazot Date: Wed, 13 Dec 2023 12:30:44 +0100 Subject: [PATCH] =?UTF-8?q?fonction=20pour=20cr=C3=A9er=20les=20tables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/api/services/DatabaseService.js | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/cryptide_project/server/api/services/DatabaseService.js b/cryptide_project/server/api/services/DatabaseService.js index f7ba212..c636125 100644 --- a/cryptide_project/server/api/services/DatabaseService.js +++ b/cryptide_project/server/api/services/DatabaseService.js @@ -14,6 +14,7 @@ class DatabaseService { const mysqlUser = process.env.MYSQL_USER; const mysqlPassword = process.env.MYSQL_PASSWORD; const mysqlDatabase = process.env.MYSQL_DATABASE; + const createTables = process.env.CREATETABLES const dbConfig = { host: mysqlHost, @@ -27,17 +28,55 @@ class DatabaseService { this.client.connect((err) => { if (err) { - console.log("ERROR") console.log(err) reject(err); } else { - console.log("pas err") + if (createTables == true){ + createTables(this.client) + } resolve(); } }); }); } + async createTables(client){ + try { + // Requête SQL pour créer la table 'users' + const createTableQuery = ` + CREATE TABLE IF NOT EXISTS users ( + idUser INT AUTO_INCREMENT PRIMARY KEY, + pseudo VARCHAR(50) NOT NULL, + password VARCHAR(60) NOT NULL, + profilePicture LONGBLOB, + createdDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ); + `; + + // Exécuter la requête SQL + await client.query(createTableQuery); + + const createTableGameQuery = ` + CREATE TABLE IF NOT EXISTS games ( + idGame INT AUTO_INCREMENT PRIMARY KEY, + idUser INT NOT NULL, + gameType VARCHAR(50) CHECK(gameType IN ('mastermind','enigme_facile','enigme_moyenne','enigme_difficile','multijoueur')), + win INT CHECK(win IN (0,1)) DEFAULT 0, + score INT NOT NULL DEFAULT 0, + time REAL NOT NULL DEFAULT 0, + playedDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (idUser) REFERENCES users(idUser) + ); + `; + + await client.query(createTableGameQuery); + + } + catch(error){ + console.log(error) + } + } + async disconnect(){ return new Promise((resolve, reject) => { this.client.end((err) => {