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 11 months ago
parent 72649cf58a
commit b62e80e538

Binary file not shown.

@ -1,6 +1,5 @@
import sqlite3 from "sqlite3";
import fs from "fs";
import { sleep } from "bun";
const dbDirectory = "./db";
const dbFilePath = `${dbDirectory}/database.db`;
@ -14,6 +13,7 @@ function createDbDirectory() {
// Ouvrir la base de données
function openDatabase() {
console.log("Ouverture de la connexion à la base de données.");
return new sqlite3.Database(
dbFilePath,
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
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))`;
@ -57,7 +76,6 @@ function insertUser(
// 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 = ?`;
db.run(updateUserLoginQuery, [newLogin, id], function (err) {
if (err) {
return console.error(err.message);
@ -124,8 +142,8 @@ function deleteAllUsers(db: sqlite3.Database) {
// 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) => {
console.log("Tous les utilisateurs enregistrés :");
if (err) {
throw err;
}
@ -135,35 +153,38 @@ function selectAllUsers(db: sqlite3.Database) {
});
}
// Fermer la base de données
function closeDatabase(db: sqlite3.Database) {
db.close((err) => {
// Sélectionner un utilisateur par son login
function selectUserByLogin(db: sqlite3.Database, login: string) {
const selectUserByLoginQuery = `SELECT * FROM registered_user WHERE login = ?`;
db.get(selectUserByLoginQuery, [login], (err, row) => {
console.log("Utilisateur avec le login, " + login + " :");
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
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);
// Sélectionner un utilisateur par son ID
function selectUserById(db: sqlite3.Database, id: number) {
const selectUserByIdQuery = `SELECT * FROM registered_user WHERE id_user = ?`;
selectAllUsers(db);
deleteUser(db, 1);
selectAllUsers(db);
db.get(selectUserByIdQuery, [id], (err, row) => {
console.log("Utilisateur avec l'ID, " + id + " :");
if (err) {
return console.error(err.message);
}
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