diff --git a/db/database.db b/db/database.db index 2392cd6..5c8fb79 100644 Binary files a/db/database.db and b/db/database.db differ diff --git a/src/database.ts b/src/database.ts index b3654f9..bac6eb5 100644 --- a/src/database.ts +++ b/src/database.ts @@ -1,6 +1,5 @@ import sqlite3 from "sqlite3"; import fs from "fs"; -import { sleep } from "bun"; const dbDirectory = "./db"; const dbFilePath = `${dbDirectory}/database.db`; @@ -14,6 +13,7 @@ function createDbDirectory() { // Ouvrir la base de données function openDatabase() { + console.log("Ouverture de la connexion à la base de données."); return new sqlite3.Database( dbFilePath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, @@ -23,6 +23,25 @@ function openDatabase() { ); } +// Fermer la base de données +function closeDatabase(db: sqlite3.Database) { + db.close((err) => { + if (err) { + console.error(err.message); + } + console.log("Fermeture de la connexion à la base de données."); + }); +} + +/////////////////////////// Gestion des utilisateurs /////////////////////////// +// CREATE TABLE registered_user ( +// id_user SERIAL PRIMARY KEY, +// login VARCHAR(64) NOT NULL, +// password VARCHAR(72) NOT NULL, +// permissions INT NOT NULL, +// UNIQUE (login) +// ); + // Créer la table registered_user dans la base de données function createRegisteredUserTable(db: sqlite3.Database) { const tableRegisteredUser = `CREATE TABLE IF NOT EXISTS registered_user (id_user INTEGER PRIMARY KEY AUTOINCREMENT, login TEXT NOT NULL, password TEXT NOT NULL, permissions INTEGER NOT NULL, UNIQUE (login))`; @@ -57,7 +76,6 @@ function insertUser( // Modifier le login d'un utilisateur dans la table registered_user function updateUserLogin(db: sqlite3.Database, id: number, newLogin: string) { const updateUserLoginQuery = `UPDATE registered_user SET login = ? WHERE id_user = ?`; - db.run(updateUserLoginQuery, [newLogin, id], function (err) { if (err) { return console.error(err.message); @@ -124,8 +142,8 @@ function deleteAllUsers(db: sqlite3.Database) { // Sélectionner tous les utilisateurs de la table registered_user function selectAllUsers(db: sqlite3.Database) { const selectAllUsersQuery = `SELECT * FROM registered_user`; - db.all(selectAllUsersQuery, [], (err, rows) => { + console.log("Tous les utilisateurs enregistrés :"); if (err) { throw err; } @@ -135,35 +153,38 @@ function selectAllUsers(db: sqlite3.Database) { }); } -// Fermer la base de données -function closeDatabase(db: sqlite3.Database) { - db.close((err) => { +// Sélectionner un utilisateur par son login +function selectUserByLogin(db: sqlite3.Database, login: string) { + const selectUserByLoginQuery = `SELECT * FROM registered_user WHERE login = ?`; + + db.get(selectUserByLoginQuery, [login], (err, row) => { + console.log("Utilisateur avec le login, " + login + " :"); if (err) { - console.error(err.message); + return console.error(err.message); } - console.log("Fermeture de la connexion à la base de données."); + console.log(row); }); } -// Utilisation des fonctions -createDbDirectory(); -const db = openDatabase(); - -createRegisteredUserTable(db); -deleteAllUsers(db); - -insertUser(db, "user1", "password1", 1); - -selectAllUsers(db); - -updateUserLogin(db, 1, "newUser1"); -updateUserPassword(db, 1, "newPassword1"); -updateUserPermissions(db, 1, 2); +// Sélectionner un utilisateur par son ID +function selectUserById(db: sqlite3.Database, id: number) { + const selectUserByIdQuery = `SELECT * FROM registered_user WHERE id_user = ?`; -selectAllUsers(db); - -deleteUser(db, 1); - -selectAllUsers(db); + db.get(selectUserByIdQuery, [id], (err, row) => { + console.log("Utilisateur avec l'ID, " + id + " :"); + if (err) { + return console.error(err.message); + } + console.log(row); + }); +} -closeDatabase(db); +/////////////////////////// Exécution des requêtes /////////////////////////// +const db = openDatabase(); +db.serialize(() => { + createDbDirectory(); + createRegisteredUserTable(db); + insertUser(db, "user1", "password1", 1); + selectAllUsers(db); + closeDatabase(db); +});