@ -1,53 +1,131 @@
import sqlite3 from "sqlite3" ;
import sqlite3 from "sqlite3" ;
import fs from "fs" ;
import fs from "fs" ;
import { sleep } from "bun" ;
const dbDirectory = "./db" ;
const dbDirectory = "./db" ;
const dbFilePath = ` ${ dbDirectory } /database.db ` ;
const dbFilePath = ` ${ dbDirectory } /database.db ` ;
// Créer le répertoire db s'il n'existe pas
// Créer le répertoire db s'il n'existe pas
function createDbDirectory() {
if ( ! fs . existsSync ( dbDirectory ) ) {
if ( ! fs . existsSync ( dbDirectory ) ) {
fs . mkdirSync ( dbDirectory ) ;
fs . mkdirSync ( dbDirectory ) ;
}
}
}
// Ouverture de la base de données
// Ouvrir la base de données
let db = new sqlite3 . Database (
function openDatabase() {
return new sqlite3 . Database (
dbFilePath ,
dbFilePath ,
sqlite3 . OPEN_READWRITE | sqlite3 . OPEN_CREATE ,
sqlite3 . OPEN_READWRITE | sqlite3 . OPEN_CREATE ,
( err : Error | null ) = > {
( err : Error | null ) = > {
if ( err ) console . error ( err . message ) ;
if ( err ) console . error ( err . message ) ;
}
}
) ;
) ;
}
// Cré ation d e la table registered_user dans la base de données
// 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)) ` ;
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)) ` ;
// Exécution de la requête pour créer la table
db . run ( tableRegisteredUser , [ ] , function ( err ) {
db . run ( tableRegisteredUser , [ ] , function ( err ) {
if ( err ) {
if ( err ) {
return console . error ( err . message ) ;
return console . error ( err . message ) ;
}
}
console . log ( "Table créée avec succès" ) ;
console . log ( "Table créée avec succès" ) ;
} ) ;
} ) ;
}
// Insérer un utilisateur dans la table registered_user
function insertUser (
db : sqlite3.Database ,
login : string ,
password : string ,
permissions : number
) {
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 } `
) ;
} ) ;
}
// 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. ` ) ;
} ) ;
}
// Modifier le mot de passe d'un utilisateur dans la table registered_user
function updateUserPassword (
db : sqlite3.Database ,
id : number ,
newPassword : string
) {
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. ` ) ;
} ) ;
}
// Insertion d'un utilisateur dans la table registered_user
function updateUserPermissions (
db : sqlite3.Database ,
id : number ,
newPermissions : number
) {
const updateUserPermissionsQuery = ` UPDATE registered_user SET permissions = ? WHERE id_user = ? ` ;
const insertUser = ` INSERT INTO registered_user (login, password, permissions) VALUES ('admin', 'admin', 1) ` ;
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. ` ) ;
} ) ;
}
// Exécution de la requête pour insérer un utilisateur
// Supprimer un utilisateur de la table registered_user
db . run ( insertUser , [ ] , function ( err ) {
function deleteUser ( db : sqlite3.Database , id : number ) {
const deleteUserQuery = ` DELETE FROM registered_user WHERE id_user = ? ` ;
db . run ( deleteUserQuery , [ id ] , function ( err ) {
if ( err ) {
if ( err ) {
return console . error ( err . message ) ;
return console . error ( err . message ) ;
}
}
console . log ( ` Utilisateur inséré avec succès ` ) ;
console . log ( ` Utilisateur supprimé avec succès. ` ) ;
} ) ;
} ) ;
}
// SELECT de tous les utilisateurs de la table registered_user
// Supprimer tous les utilisateurs de la table registered_user
function deleteAllUsers ( db : sqlite3.Database ) {
const deleteAllUsersQuery = ` DELETE FROM registered_user ` ;
const selectAllUsers = ` SELECT * 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. ` ) ;
} ) ;
}
// Exécution de la requête pour sélectionner tous les utilisateurs
// Sélectionner tous les utilisateurs de la table registered_user
function selectAllUsers ( db : sqlite3.Database ) {
const selectAllUsersQuery = ` SELECT * FROM registered_user ` ;
db . all ( selectAllUsers , [ ] , ( err , rows ) = > {
db . all ( selectAllUsers Query , [ ] , ( err , rows ) = > {
if ( err ) {
if ( err ) {
throw err ;
throw err ;
}
}
@ -55,11 +133,37 @@ db.all(selectAllUsers, [], (err, rows) => {
console . log ( row ) ;
console . log ( row ) ;
} ) ;
} ) ;
} ) ;
} ) ;
}
// Fermeture de la base de données
// Fermer la base de données
function closeDatabase ( db : sqlite3.Database ) {
db . close ( ( err ) = > {
db . close ( ( err ) = > {
if ( err ) {
if ( err ) {
console . error ( err . message ) ;
console . error ( err . message ) ;
}
}
console . log ( " Close the database connection .") ;
console . log ( " Fermeture de la connexion à la base de données .") ;
} ) ;
} ) ;
}
// 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 ) ;
selectAllUsers ( db ) ;
deleteUser ( db , 1 ) ;
selectAllUsers ( db ) ;
closeDatabase ( db ) ;