@ -1,6 +1,5 @@
import sqlite3 from "sqlite3" ;
import fs from "fs" ;
import { sleep } from "bun" ;
const dbDirectory = "./db" ;
const dbFilePath = ` ${ dbDirectory } /database.db ` ;
@ -14,6 +13,7 @@ function createDbDirectory() {
// Ouvrir la base de données
function openDatabase() {
console . log ( "Ouverture de la connexion à la base de données." ) ;
return new sqlite3 . Database (
dbFilePath ,
sqlite3 . OPEN_READWRITE | sqlite3 . OPEN_CREATE ,
@ -23,6 +23,25 @@ function openDatabase() {
) ;
}
// Fermer la base de données
function closeDatabase ( db : sqlite3.Database ) {
db . close ( ( err ) = > {
if ( err ) {
console . error ( err . message ) ;
}
console . log ( "Fermeture de la connexion à la base de données." ) ;
} ) ;
}
/////////////////////////// Gestion des utilisateurs ///////////////////////////
// CREATE TABLE registered_user (
// id_user SERIAL PRIMARY KEY,
// login VARCHAR(64) NOT NULL,
// password VARCHAR(72) NOT NULL,
// permissions INT NOT NULL,
// UNIQUE (login)
// );
// 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)) ` ;
@ -57,7 +76,6 @@ function insertUser(
// 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 ) ;
@ -124,8 +142,8 @@ function deleteAllUsers(db: sqlite3.Database) {
// Sélectionner tous les utilisateurs de la table registered_user
function selectAllUsers ( db : sqlite3.Database ) {
const selectAllUsersQuery = ` SELECT * FROM registered_user ` ;
db . all ( selectAllUsersQuery , [ ] , ( err , rows ) = > {
console . log ( "Tous les utilisateurs enregistrés :" ) ;
if ( err ) {
throw err ;
}
@ -135,35 +153,38 @@ function selectAllUsers(db: sqlite3.Database) {
} ) ;
}
// Fermer la base de données
function closeDatabase ( db : sqlite3.Database ) {
db . close ( ( err ) = > {
// 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 ) {
console . error ( err . message ) ;
return console . error ( err . message ) ;
}
console . log ( "Fermeture de la connexion à la base de données." ) ;
console . log ( row ) ;
} ) ;
}
// 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 ) ;
// Sélectionner un utilisateur par son ID
function selectUserById ( db : sqlite3.Database , id : number ) {
const selectUserByIdQuery = ` SELECT * FROM registered_user WHERE id_user = ? ` ;
selectAllUsers ( db ) ;
deleteUser ( db , 1 ) ;
selectAllUsers ( db ) ;
db . get ( selectUserByIdQuery , [ id ] , ( err , row ) = > {
console . log ( "Utilisateur avec l'ID, " + id + " :" ) ;
if ( err ) {
return console . error ( err . message ) ;
}
console . log ( row ) ;
} ) ;
}
closeDatabase ( db ) ;
/////////////////////////// Exécution des requêtes ///////////////////////////
const db = openDatabase ( ) ;
db . serialize ( ( ) = > {
createDbDirectory ( ) ;
createRegisteredUserTable ( db ) ;
insertUser ( db , "user1" , "password1" , 1 ) ;
selectAllUsers ( db ) ;
closeDatabase ( db ) ;
} ) ;