utilisation de fonction (create, insert, update, delete)
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
20d15ce6d6
commit
72649cf58a
Binary file not shown.
@ -1,65 +1,169 @@
|
|||||||
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
|
||||||
if (!fs.existsSync(dbDirectory)) {
|
function createDbDirectory() {
|
||||||
fs.mkdirSync(dbDirectory);
|
if (!fs.existsSync(dbDirectory)) {
|
||||||
|
fs.mkdirSync(dbDirectory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ouverture de la base de données
|
// Ouvrir la base de données
|
||||||
let db = new sqlite3.Database(
|
function openDatabase() {
|
||||||
dbFilePath,
|
return new sqlite3.Database(
|
||||||
sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE,
|
dbFilePath,
|
||||||
(err: Error | null) => {
|
sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE,
|
||||||
if (err) console.error(err.message);
|
(err: Error | null) => {
|
||||||
}
|
if (err) console.error(err.message);
|
||||||
);
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Création de 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))`;
|
db.run(tableRegisteredUser, [], function (err) {
|
||||||
|
if (err) {
|
||||||
|
return console.error(err.message);
|
||||||
|
}
|
||||||
|
console.log("Table créée avec succès");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Exécution de la requête pour créer la table
|
// Insérer un utilisateur dans la table registered_user
|
||||||
db.run(tableRegisteredUser, [], function (err) {
|
function insertUser(
|
||||||
if (err) {
|
db: sqlite3.Database,
|
||||||
return console.error(err.message);
|
login: string,
|
||||||
}
|
password: string,
|
||||||
console.log("Table créée avec succès");
|
permissions: number
|
||||||
});
|
) {
|
||||||
|
const insertUserQuery = `INSERT INTO registered_user (login, password, permissions) VALUES (?, ?, ?)`;
|
||||||
|
|
||||||
// Insertion d'un utilisateur dans la table registered_user
|
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}`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const insertUser = `INSERT INTO registered_user (login, password, permissions) VALUES ('admin', 'admin', 1)`;
|
// 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 = ?`;
|
||||||
|
|
||||||
// Exécution de la requête pour insérer un utilisateur
|
db.run(updateUserLoginQuery, [newLogin, id], function (err) {
|
||||||
db.run(insertUser, [], function (err) {
|
if (err) {
|
||||||
if (err) {
|
return console.error(err.message);
|
||||||
return console.error(err.message);
|
}
|
||||||
}
|
console.log(`Login de l'utilisateur mis à jour avec succès.`);
|
||||||
console.log(`Utilisateur inséré avec succès`);
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
// SELECT de tous les utilisateurs de la table registered_user
|
// 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 = ?`;
|
||||||
|
|
||||||
const selectAllUsers = `SELECT * FROM registered_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.`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Exécution de la requête pour sélectionner tous les utilisateurs
|
function updateUserPermissions(
|
||||||
|
db: sqlite3.Database,
|
||||||
|
id: number,
|
||||||
|
newPermissions: number
|
||||||
|
) {
|
||||||
|
const updateUserPermissionsQuery = `UPDATE registered_user SET permissions = ? WHERE id_user = ?`;
|
||||||
|
|
||||||
db.all(selectAllUsers, [], (err, rows) => {
|
db.run(updateUserPermissionsQuery, [newPermissions, id], function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
throw err;
|
return console.error(err.message);
|
||||||
}
|
}
|
||||||
rows.forEach((row) => {
|
console.log(`Permissions de l'utilisateur mises à jour avec succès.`);
|
||||||
console.log(row);
|
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
// Fermeture de la base de données
|
// Supprimer un utilisateur de la table registered_user
|
||||||
db.close((err) => {
|
function deleteUser(db: sqlite3.Database, id: number) {
|
||||||
if (err) {
|
const deleteUserQuery = `DELETE FROM registered_user WHERE id_user = ?`;
|
||||||
console.error(err.message);
|
|
||||||
}
|
db.run(deleteUserQuery, [id], function (err) {
|
||||||
console.log("Close the database connection.");
|
if (err) {
|
||||||
});
|
return console.error(err.message);
|
||||||
|
}
|
||||||
|
console.log(`Utilisateur supprimé avec succès.`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Supprimer tous les utilisateurs de la table registered_user
|
||||||
|
function deleteAllUsers(db: sqlite3.Database) {
|
||||||
|
const deleteAllUsersQuery = `DELETE 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.`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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) => {
|
||||||
|
if (err) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
rows.forEach((row) => {
|
||||||
|
console.log(row);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
Loading…
Reference in new issue