utilisation de fonction (create, insert, update, delete)
continuous-integration/drone/push Build is passing Details

pull/2/head
Hugo PRADIER 12 months ago
parent 20d15ce6d6
commit 72649cf58a

Binary file not shown.

@ -5,7 +5,7 @@
"scripts": {
"build": "tsc",
"start": "tsx src/server.ts",
"dbb": "tsx src/database.ts"
"db": "tsx src/database.ts"
},
"devDependencies": {
"@types/bun": "^1.0.4",

@ -1,65 +1,169 @@
import sqlite3 from "sqlite3";
import fs from "fs";
import { sleep } from "bun";
const dbDirectory = "./db";
const dbFilePath = `${dbDirectory}/database.db`;
// Créer le répertoire db s'il n'existe pas
if (!fs.existsSync(dbDirectory)) {
fs.mkdirSync(dbDirectory);
function createDbDirectory() {
if (!fs.existsSync(dbDirectory)) {
fs.mkdirSync(dbDirectory);
}
}
// Ouverture de la base de données
let db = new sqlite3.Database(
dbFilePath,
sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE,
(err: Error | null) => {
if (err) console.error(err.message);
}
);
// Ouvrir la base de données
function openDatabase() {
return new sqlite3.Database(
dbFilePath,
sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE,
(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
db.run(tableRegisteredUser, [], function (err) {
if (err) {
return console.error(err.message);
}
console.log("Table créée avec succès");
});
// Insérer un utilisateur dans la table registered_user
function insertUser(
db: sqlite3.Database,
login: string,
password: string,
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(insertUser, [], function (err) {
if (err) {
return console.error(err.message);
}
console.log(`Utilisateur inséré avec succès`);
});
db.run(updateUserLoginQuery, [newLogin, id], function (err) {
if (err) {
return console.error(err.message);
}
console.log(`Login de l'utilisateur mis à jour 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) => {
if (err) {
throw err;
}
rows.forEach((row) => {
console.log(row);
db.run(updateUserPermissionsQuery, [newPermissions, id], function (err) {
if (err) {
return console.error(err.message);
}
console.log(`Permissions de l'utilisateur mises à jour avec succès.`);
});
});
}
// Fermeture de la base de données
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log("Close the database connection.");
});
// Supprimer un utilisateur de la table registered_user
function deleteUser(db: sqlite3.Database, id: number) {
const deleteUserQuery = `DELETE FROM registered_user WHERE id_user = ?`;
db.run(deleteUserQuery, [id], function (err) {
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…
Cancel
Save