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": { "scripts": {
"build": "tsc", "build": "tsc",
"start": "tsx src/server.ts", "start": "tsx src/server.ts",
"dbb": "tsx src/database.ts" "db": "tsx src/database.ts"
}, },
"devDependencies": { "devDependencies": {
"@types/bun": "^1.0.4", "@types/bun": "^1.0.4",

@ -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…
Cancel
Save