fin de redaction des fonction pour la table user avant creation de l'api
continuous-integration/drone/push Build is passing Details

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

Binary file not shown.

@ -1,6 +1,5 @@
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`;
@ -14,6 +13,7 @@ function createDbDirectory() {
// Ouvrir la base de données // Ouvrir la base de données
function openDatabase() { function openDatabase() {
console.log("Ouverture de la connexion à la base de données.");
return new sqlite3.Database( return new sqlite3.Database(
dbFilePath, dbFilePath,
sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE,
@ -23,6 +23,25 @@ function openDatabase() {
); );
} }
// 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.");
});
}
/////////////////////////// Gestion des utilisateurs ///////////////////////////
// CREATE TABLE registered_user (
// id_user SERIAL PRIMARY KEY,
// login VARCHAR(64) NOT NULL,
// password VARCHAR(72) NOT NULL,
// permissions INT NOT NULL,
// UNIQUE (login)
// );
// Créer 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) { 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))`;
@ -57,7 +76,6 @@ function insertUser(
// Modifier le login d'un utilisateur dans la table registered_user // Modifier le login d'un utilisateur dans la table registered_user
function updateUserLogin(db: sqlite3.Database, id: number, newLogin: string) { function updateUserLogin(db: sqlite3.Database, id: number, newLogin: string) {
const updateUserLoginQuery = `UPDATE registered_user SET login = ? WHERE id_user = ?`; const updateUserLoginQuery = `UPDATE registered_user SET login = ? WHERE id_user = ?`;
db.run(updateUserLoginQuery, [newLogin, id], function (err) { db.run(updateUserLoginQuery, [newLogin, id], function (err) {
if (err) { if (err) {
return console.error(err.message); return console.error(err.message);
@ -124,8 +142,8 @@ function deleteAllUsers(db: sqlite3.Database) {
// Sélectionner tous les utilisateurs de la table registered_user // Sélectionner tous les utilisateurs de la table registered_user
function selectAllUsers(db: sqlite3.Database) { function selectAllUsers(db: sqlite3.Database) {
const selectAllUsersQuery = `SELECT * FROM registered_user`; const selectAllUsersQuery = `SELECT * FROM registered_user`;
db.all(selectAllUsersQuery, [], (err, rows) => { db.all(selectAllUsersQuery, [], (err, rows) => {
console.log("Tous les utilisateurs enregistrés :");
if (err) { if (err) {
throw err; throw err;
} }
@ -135,35 +153,38 @@ function selectAllUsers(db: sqlite3.Database) {
}); });
} }
// Fermer la base de données // Sélectionner un utilisateur par son login
function closeDatabase(db: sqlite3.Database) { function selectUserByLogin(db: sqlite3.Database, login: string) {
db.close((err) => { const selectUserByLoginQuery = `SELECT * FROM registered_user WHERE login = ?`;
db.get(selectUserByLoginQuery, [login], (err, row) => {
console.log("Utilisateur avec le login, " + login + " :");
if (err) { if (err) {
console.error(err.message); return console.error(err.message);
} }
console.log("Fermeture de la connexion à la base de données."); console.log(row);
}); });
} }
// Utilisation des fonctions // Sélectionner un utilisateur par son ID
createDbDirectory(); function selectUserById(db: sqlite3.Database, id: number) {
const db = openDatabase(); const selectUserByIdQuery = `SELECT * FROM registered_user WHERE id_user = ?`;
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); db.get(selectUserByIdQuery, [id], (err, row) => {
console.log("Utilisateur avec l'ID, " + id + " :");
deleteUser(db, 1); if (err) {
return console.error(err.message);
selectAllUsers(db); }
console.log(row);
});
}
closeDatabase(db); /////////////////////////// Exécution des requêtes ///////////////////////////
const db = openDatabase();
db.serialize(() => {
createDbDirectory();
createRegisteredUserTable(db);
insertUser(db, "user1", "password1", 1);
selectAllUsers(db);
closeDatabase(db);
});

Loading…
Cancel
Save