diff --git a/db/database.db b/db/database.db deleted file mode 100644 index 5c8fb79..0000000 Binary files a/db/database.db and /dev/null differ diff --git a/src/database.ts b/src/database.ts index db7eaab..3f7da04 100644 --- a/src/database.ts +++ b/src/database.ts @@ -1,10 +1,10 @@ import sqlite3 from "sqlite3"; import fs from "fs"; -const dbDirectory = "./db"; +const dbDirectory = "./src/db"; const dbFilePath = `${dbDirectory}/database.db`; -// Fonctions utilitaires pour les requêtes SQL +// Fonctions pour exécuter des requêtes SQL sur la base de données SQLite avec des promesses pour gérer les erreurs et les résultats asynchrones function runDB( db: sqlite3.Database, @@ -91,15 +91,10 @@ function closeDatabase(db: sqlite3.Database) { // ); // Créer la table registered_user dans la base de données -function createRegisteredUserTable(db: sqlite3.Database) { +function createRegisteredUserTable(db: sqlite3.Database): Promise { 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))`; - db.run(tableRegisteredUser, [], function (err) { - if (err) { - return console.error(err.message); - } - console.log("Table créée avec succès"); - }); + return runDB(db, tableRegisteredUser, []); } // Insérer un utilisateur dans la table registered_user @@ -111,25 +106,14 @@ function insertUser( ) { const insertUserQuery = `INSERT INTO registered_user (login, password, permissions) VALUES (?, ?, ?)`; - db.run(insertUserQuery, [login, password, permissions], function (err) { - if (err) { - return console.error(err.message); - } - console.log( - `Utilisateur inséré avec succès. ID utilisateur: ${this.lastID}` - ); - }); + return runDB(db, insertUserQuery, [login, password, permissions]); } // 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); - } - console.log(`Login de l'utilisateur mis à jour avec succès.`); - }); + + return runDB(db, updateUserLoginQuery, [newLogin, id]); } // Modifier le mot de passe d'un utilisateur dans la table registered_user @@ -140,12 +124,7 @@ function updateUserPassword( ) { const updateUserPasswordQuery = `UPDATE registered_user SET password = ? WHERE id_user = ?`; - db.run(updateUserPasswordQuery, [newPassword, id], function (err) { - if (err) { - return console.error(err.message); - } - console.log(`Mot de passe de l'utilisateur mis à jour avec succès.`); - }); + return runDB(db, updateUserPasswordQuery, [newPassword, id]); } function updateUserPermissions( @@ -155,79 +134,42 @@ function updateUserPermissions( ) { const updateUserPermissionsQuery = `UPDATE registered_user SET permissions = ? WHERE id_user = ?`; - db.run(updateUserPermissionsQuery, [newPermissions, id], function (err) { - if (err) { - return console.error(err.message); - } - console.log(`Permissions de l'utilisateur mises à jour avec succès.`); - }); + return runDB(db, updateUserPermissionsQuery, [newPermissions, id]); } // Supprimer un utilisateur de la table registered_user function deleteUser(db: sqlite3.Database, id: number) { const deleteUserQuery = `DELETE FROM registered_user WHERE id_user = ?`; - db.run(deleteUserQuery, [id], function (err) { - if (err) { - return console.error(err.message); - } - console.log(`Utilisateur supprimé avec succès.`); - }); + return runDB(db, deleteUserQuery, [id]); } // Supprimer tous les utilisateurs de la table registered_user function deleteAllUsers(db: sqlite3.Database) { const deleteAllUsersQuery = `DELETE FROM registered_user`; - db.run(deleteAllUsersQuery, [], function (err) { - if (err) { - return console.error(err.message); - } - console.log(`Tous les utilisateurs ont été supprimés avec succès.`); - }); + return runDB(db, deleteAllUsersQuery, []); } // Sélectionner tous les utilisateurs de la table registered_user function selectAllUsers(db: sqlite3.Database): Promise { const selectAllUsersQuery = `SELECT * FROM registered_user`; - return new Promise((resolve, reject) => { - db.all(selectAllUsersQuery, (err, rows) => { - if (err) { - reject(err); - } else { - console.log("Utilisateurs :"); - console.log(rows); - resolve(rows); - } - }); - }); + return allDB(db, selectAllUsersQuery); } // 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) { - return console.error(err.message); - } - console.log(row); - }); + return getDB(db, selectUserByLoginQuery, [login]); } // Sélectionner un utilisateur par son ID function selectUserById(db: sqlite3.Database, id: number) { const selectUserByIdQuery = `SELECT * FROM registered_user WHERE id_user = ?`; - db.get(selectUserByIdQuery, [id], (err, row) => { - console.log("Utilisateur avec l'ID, " + id + " :"); - if (err) { - return console.error(err.message); - } - console.log(row); - }); + return getDB(db, selectUserByIdQuery, [id]); } /////////////////////////// Export des fonctions /////////////////////////// diff --git a/src/db/database.db b/src/db/database.db index e69de29..05f44b1 100644 Binary files a/src/db/database.db and b/src/db/database.db differ diff --git a/src/server.ts b/src/server.ts index 74d6958..a771e64 100644 --- a/src/server.ts +++ b/src/server.ts @@ -114,7 +114,7 @@ fastify.put<{ }>("/users/:id/password", async (request, reply) => { const { id } = request.params; const { newPassword } = request.body; - updateUserPassword(db, parseInt(id), newPassword); + await updateUserPassword(db, parseInt(id), newPassword); reply.send({ success: true }); }); @@ -125,7 +125,7 @@ fastify.put<{ }>("/users/:id/permissions", async (request, reply) => { const { id } = request.params; const { newPermissions } = request.body; - updateUserPermissions(db, parseInt(id), newPermissions); + await updateUserPermissions(db, parseInt(id), newPermissions); reply.send({ success: true }); }); @@ -134,13 +134,13 @@ fastify.delete<{ Params: { id: string }; }>("/users/:id", async (request, reply) => { const { id } = request.params; - deleteUser(db, parseInt(id)); + await deleteUser(db, parseInt(id)); reply.send({ success: true }); }); // Route pour supprimer tous les utilisateurs fastify.delete("/users", async (request, reply) => { - deleteAllUsers(db); + await deleteAllUsers(db); reply.send({ success: true }); }); // Route pour récupérer tous les utilisateurs @@ -154,7 +154,7 @@ fastify.get<{ Params: { id: string }; }>("/users/:id", async (request, reply) => { const { id } = request.params; - const user = selectUserById(db, parseInt(id)); + const user = await selectUserById(db, parseInt(id)); reply.send(user); }); @@ -163,7 +163,7 @@ fastify.get<{ Params: { login: string }; }>("/users/login/:login", async (request, reply) => { const { login } = request.params; - const user = selectUserByLogin(db, login); + const user = await selectUserByLogin(db, login); reply.send(user); });