From 7047c3d4d362f05f62f6145cf17e373610dba2b0 Mon Sep 17 00:00:00 2001 From: "hugo.pradier2" Date: Thu, 16 May 2024 11:47:30 +0200 Subject: [PATCH] action sur user avec retour promesse complet --- db/database.db | Bin 16384 -> 0 bytes src/database.ts | 86 ++++++++------------------------------------- src/db/database.db | Bin 0 -> 16384 bytes src/server.ts | 12 +++---- 4 files changed, 20 insertions(+), 78 deletions(-) delete mode 100644 db/database.db diff --git a/db/database.db b/db/database.db deleted file mode 100644 index 5c8fb793af91f8d6330ed289ae6700faff526fff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI(!Aiq07zgmg&bg^w1Q|sBsb4Q#w+&*o{_4@KRE;T;7_=TCEBtp5K=@UytpMq9BQT zsWta%sR=_v=VEMAcgmg#duFe3j0OP+KmY;|fB*y_009U<00Izzz+V?wT9_p(R^IIo zJ%1xP>J_tMF&A%gESs~$TFb}7+IS11Hm`4>?2WKD_VU-C4(o#e1Rwwb2tWV=5P$## zAOHafKwz4{ys<(*Hv|@PMv=y^|BHFUN(MD^^8J5WKIS0+0SG_<0uX=z1Rwwb2tWV= Q5co#|%hagQ)PDfx2h4<|egFUf 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..05f44b14f689c6a10f68b5793f726f70695313a4 100644 GIT binary patch literal 16384 zcmeI%O-jQ+6bJB0TdD~C*me7sEh&Py7K}1TFiqQZ0(KRm9ZR51Y$ipwdI%5TExeIO zaOotricv36{sS}N&E!2YzhpCHGIpX&(ruD1!;Fqun;8Z>C1Q*jy4Q5yw!h--+J9Gr z9i}gh);p^xERSg+8JN zO0L#2zA1;bbB|ksld#SlPNjRhak!Lyo!NVIjlI0&)1;`G%6X(RnaWwPRx&Mxl^-=r zi`0!ilgM@jzu+E?JbPeyQ@Z3+vV1YLU7bJRuISSunMW}RekI5q>h3#EpYB4X?vr%( zYhI?yNU11^)mQEBEZ?=qKBsO`ve!GQ)H`F-U{O4i51Va=>nthap!CeaQE8&8q4#s_ zMn1Ij0Sy8WfB*y_009U<00Izz00bZafn60i$Tx=b|E|7X>("/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); });