@ -85,6 +85,7 @@ function closeDatabase(db: sqlite3.Database) {
function createTables ( db : sqlite3.Database ) {
createRegisteredUserTable ( db ) ;
createLanguageTable ( db ) ;
createWorkTable ( db ) ;
}
/////////////////////////// Gestion des utilisateurs ///////////////////////////
@ -248,6 +249,60 @@ function selectLanguageById(db: sqlite3.Database, id: number) {
return getDB ( db , selectLanguageByIdQuery , [ id ] ) ;
}
/////////////////////////// Gestion des works ///////////////////////////
// CREATE TABLE work (
// id_work SERIAL PRIMARY KEY,
// user_id INT REFERENCES registered_user(id_user),
// language_id INT NOT NULL REFERENCES language(id_language)
// content TEXT NOT NULL,
// );
// Créer la table work dans la base de données
function createWorkTable ( db : sqlite3.Database ) : Promise < void > {
const tableWork = ` CREATE TABLE IF NOT EXISTS work (id_work INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER REFERENCES registered_user(id_user), language_id INTEGER NOT NULL REFERENCES language(id_language), content TEXT NOT NULL) ` ;
return runDB ( db , tableWork , [ ] ) ;
}
// Insérer un work dans la table work
function insertWork (
db : sqlite3.Database ,
user_id : number ,
language_id : number ,
content : string
) {
const insertWorkQuery = ` INSERT INTO work (user_id, language_id, content) VALUES (?, ?, ?) ` ;
return runDB ( db , insertWorkQuery , [ user_id , language_id , content ] ) ;
}
// Sélectionner tous les works de la table work
function selectAllWorks ( db : sqlite3.Database ) : Promise < unknown [ ] > {
const selectAllWorksQuery = ` SELECT * FROM work ` ;
return allDB ( db , selectAllWorksQuery ) ;
}
// Supprimer tous les works de la table work
function deleteAllWorks ( db : sqlite3.Database ) {
const deleteAllWorksQuery = ` DELETE FROM work ` ;
return runDB ( db , deleteAllWorksQuery , [ ] ) ;
}
// Supprimer un work de la table work
function deleteWork ( db : sqlite3.Database , id : number ) {
const deleteWorkQuery = ` DELETE FROM work WHERE id_work = ? ` ;
return runDB ( db , deleteWorkQuery , [ id ] ) ;
}
// Sélectionner un work par son ID
function selectWorkById ( db : sqlite3.Database , id : number ) {
const selectWorkByIdQuery = ` SELECT * FROM work WHERE id_work = ? ` ;
return getDB ( db , selectWorkByIdQuery , [ id ] ) ;
}
/////////////////////////// Export des fonctions ///////////////////////////
export {
createDbDirectory ,
@ -270,4 +325,9 @@ export {
deleteAllLanguages ,
selectAllLanguages ,
selectLanguageById ,
insertWork ,
selectAllWorks ,
deleteAllWorks ,
deleteWork ,
selectWorkById ,
} ;