@ -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 ///////////////////////////