action sur user avec retour promesse complet
continuous-integration/drone/push Build is passing Details

pull/2/head
Hugo PRADIER 11 months ago
parent 4fe64e0601
commit 7047c3d4d3

Binary file not shown.

@ -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<void> {
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<unknown[]> {
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 ///////////////////////////

Binary file not shown.

@ -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);
});

Loading…
Cancel
Save