@ -98,6 +98,7 @@ export function createTables(db: sqlite3.Database) {
// CREATE TABLE registered_user (
// id_user SERIAL PRIMARY KEY,
// login VARCHAR(64) NOT NULL,
// email VARCHAR(64) NOT NULL,
// password VARCHAR(72) NOT NULL,
// permissions INT NOT NULL,
// UNIQUE (login)
@ -105,8 +106,13 @@ export function createTables(db: sqlite3.Database) {
/* Créer la table registered_user dans la base de données */
export 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)) ` ;
const tableRegisteredUser = ` CREATE TABLE IF NOT EXISTS registered_user (
id_user INTEGER PRIMARY KEY AUTOINCREMENT ,
login TEXT NOT NULL ,
email TEXT NOT NULL ,
password TEXT NOT NULL ,
permissions INTEGER NOT NULL ,
UNIQUE ( login ) ) ` ;
return runDB ( db , tableRegisteredUser , [ ] ) ;
}
@ -115,12 +121,13 @@ export function createRegisteredUserTable(db: sqlite3.Database): Promise<void> {
export function insertUser (
db : sqlite3.Database ,
login : string ,
email : string ,
password : string ,
permissions : number ,
) {
const insertUserQuery = ` INSERT INTO registered_user (login, password, permissions) VALUES (?, ?, ?)` ;
const insertUserQuery = ` INSERT INTO registered_user (login, email, password, permissions) VALUES (?, ?, ?, ?)` ;
return runDB ( db , insertUserQuery , [ login , password, permissions ] ) ;
return runDB ( db , insertUserQuery , [ login , email, password, permissions ] ) ;
}
/* Modifier le login d'un utilisateur dans la table registered_user */
@ -156,6 +163,15 @@ export function updateUserPermissions(
return runDB ( db , updateUserPermissionsQuery , [ newPermissions , id ] ) ;
}
export function updateUserEmail (
db : sqlite3.Database ,
id : number ,
newEmail : string
) {
const updateUserEmailQuery = ` UPDATE registered_user SET email = ? WHERE id_user = ? ` ;
return runDB ( db , updateUserEmailQuery , [ newEmail , id ] ) ;
}
/* Supprimer un utilisateur de la table registered_user par son ID */
export function deleteUserById ( db : sqlite3.Database , id : number ) {
const deleteUserQuery = ` DELETE FROM registered_user WHERE id_user = ? ` ;
@ -279,13 +295,20 @@ export function selectLanguageById(db: sqlite3.Database, id: number) {
// link CHAR(36) NOT NULL,
// user_id INT REFERENCES registered_user(id_user),
// language_id INT NOT NULL REFERENCES language(id_language)
// title VARCHAR(30) NOT NULL,
// content TEXT NOT NULL,
// date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
// );
/* Créer la table work dans la base de données */
export function createWorkTable ( db : sqlite3.Database ) : Promise < void > {
const tableWork =
` CREATE TABLE IF NOT EXISTS work (id_work INTEGER PRIMARY KEY AUTOINCREMENT, link CHAR(36) NOT NULL, user_id INTEGER REFERENCES registered_user(id_user), language_id INTEGER NOT NULL REFERENCES language(id_language), content TEXT NOT NULL) ` ;
const tableWork = ` CREATE TABLE IF NOT EXISTS work (
id_work INTEGER PRIMARY KEY AUTOINCREMENT ,
link CHAR ( 36 ) NOT NULL , user_id INTEGER REFERENCES registered_user ( id_user ) ,
language_id INTEGER NOT NULL REFERENCES language ( id_language ) ,
title TEXT NOT NULL ,
content TEXT NOT NULL ,
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ` ;
return runDB ( db , tableWork , [ ] ) ;
}
@ -295,11 +318,12 @@ export function insertWork(
link : string ,
user_id : number ,
language_id : number ,
title : string ,
content : string ,
) {
const insertWorkQuery = ` INSERT INTO work (link, user_id, language_id, content) VALUES (?, ?, ?, ?)` ;
const insertWorkQuery = ` INSERT INTO work (link, user_id, language_id, title, content, date ) VALUES (?, ?, ?, ?, ?, ?)` ;
return runDB ( db , insertWorkQuery , [ link , user_id , language_id , content] ) ;
return runDB ( db , insertWorkQuery , [ link , user_id , language_id , title, content, new Date ( ) . toISOString ( ) ] ) ;
}
/* Sélectionner tous les works de la table work */
@ -329,3 +353,27 @@ export function selectWorkById(db: sqlite3.Database, id: number) {
return getDB ( db , selectWorkByIdQuery , [ id ] ) ;
}
/* Update the work title by its ID */
export function updateWorkTitle (
db : sqlite3.Database ,
id : number ,
newTitle : string
) {
const updateWorkTitleQuery = ` UPDATE work SET title = ? WHERE id_work = ? ` ;
return runDB ( db , updateWorkTitleQuery , [ newTitle , id ] ) ;
}
/* Update the work content by its ID */
export function updateWorkContent (
db : sqlite3.Database ,
id : number ,
newContent : string
) {
const updateWorkContentQuery = ` UPDATE work SET content = ? WHERE id_work = ? ` ;
return runDB ( db , updateWorkContentQuery , [ newContent , id ] ) ;
}