@ -40,11 +40,11 @@ function getDB(
params : any [ ]
) : Promise < void > {
return new Promise ( ( resolve , reject ) = > {
db . get ( query , params , ( err , row ) = > {
db . get ( query , params , ( err , row : any ) = > {
if ( err ) {
reject ( err ) ;
} else {
resolve ( ) ;
resolve ( row ) ;
}
} ) ;
} ) ;
@ -81,6 +81,12 @@ function closeDatabase(db: sqlite3.Database) {
} ) ;
}
// Create all the tables in the database
function createTables ( db : sqlite3.Database ) {
createRegisteredUserTable ( db ) ;
createLanguageTable ( db ) ;
}
/////////////////////////// Gestion des utilisateurs ///////////////////////////
// CREATE TABLE registered_user (
// id_user SERIAL PRIMARY KEY,
@ -172,12 +178,82 @@ function selectUserById(db: sqlite3.Database, id: number) {
return getDB ( db , selectUserByIdQuery , [ id ] ) ;
}
/////////////////////////// Gestion des Languages ///////////////////////////
// CREATE TABLE language (
// id_language SERIAL PRIMARY KEY,
// designation VARCHAR(30) NOT NULL,
// version INT NOT NULL,
// );
// Créer la table language dans la base de données
function createLanguageTable ( db : sqlite3.Database ) : Promise < void > {
const tableLanguage = ` CREATE TABLE IF NOT EXISTS language (id_language INTEGER PRIMARY KEY AUTOINCREMENT, designation TEXT NOT NULL, version INTEGER NOT NULL) ` ;
return runDB ( db , tableLanguage , [ ] ) ;
}
// Insérer un language dans la table language
function insertLanguage (
db : sqlite3.Database ,
designation : string ,
version : number
) {
const insertLanguageQuery = ` INSERT INTO language (designation, version) VALUES (?, ?) ` ;
return runDB ( db , insertLanguageQuery , [ designation , version ] ) ;
}
// Modifier la designation d'un language dans la table language
function updateLanguageDesignation ( db : sqlite3.Database , id : number , newDesignation : string ) {
const updateLanguageDesignationQuery = ` UPDATE language SET designation = ? WHERE id_language = ? ` ;
return runDB ( db , updateLanguageDesignationQuery , [ newDesignation , id ] ) ;
}
// Modifier la version d'un language dans la table language
function updateLanguageVersion (
db : sqlite3.Database ,
id : number ,
newVersion : number
) {
const updateLanguageVersionQuery = ` UPDATE language SET version = ? WHERE id_language = ? ` ;
return runDB ( db , updateLanguageVersionQuery , [ newVersion , id ] ) ;
}
// Supprimer un language de la table language
function deleteLanguage ( db : sqlite3.Database , id : number ) {
const deleteLanguageQuery = ` DELETE FROM language WHERE id_language = ? ` ;
return runDB ( db , deleteLanguageQuery , [ id ] ) ;
}
// Supprimer tous les languages de la table language
function deleteAllLanguages ( db : sqlite3.Database ) {
const deleteAllLanguagesQuery = ` DELETE FROM language ` ;
return runDB ( db , deleteAllLanguagesQuery , [ ] ) ;
}
// Sélectionner tous les languages de la table language
function selectAllLanguages ( db : sqlite3.Database ) : Promise < unknown [ ] > {
const selectAllLanguagesQuery = ` SELECT * FROM language ` ;
return allDB ( db , selectAllLanguagesQuery ) ;
}
// Sélectionner un language par son ID
function selectLanguageById ( db : sqlite3.Database , id : number ) {
const selectLanguageByIdQuery = ` SELECT * FROM language WHERE id_language = ? ` ;
return getDB ( db , selectLanguageByIdQuery , [ id ] ) ;
}
/////////////////////////// Export des fonctions ///////////////////////////
export {
createDbDirectory ,
openDatabase ,
closeDatabase ,
createRegisteredUserTable ,
create Tables ,
insertUser ,
updateUserLogin ,
updateUserPassword ,
@ -187,4 +263,11 @@ export {
selectAllUsers ,
selectUserByLogin ,
selectUserById ,
insertLanguage ,
updateLanguageDesignation ,
updateLanguageVersion ,
deleteLanguage ,
deleteAllLanguages ,
selectAllLanguages ,
selectLanguageById ,
} ;