retour json fonctionnel
continuous-integration/drone/push Build is passing Details

pull/2/head
Hugo PRADIER 11 months ago
parent 9fcc8a806c
commit 4fe64e0601

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

@ -4,6 +4,54 @@ import fs from "fs";
const dbDirectory = "./db"; const dbDirectory = "./db";
const dbFilePath = `${dbDirectory}/database.db`; const dbFilePath = `${dbDirectory}/database.db`;
// Fonctions utilitaires pour les requêtes SQL
function runDB(
db: sqlite3.Database,
query: string,
params: any[]
): Promise<void> {
return new Promise((resolve, reject) => {
db.run(query, params, (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
function allDB(db: sqlite3.Database, query: string): Promise<any[]> {
return new Promise((resolve, reject) => {
db.all(query, (err, rows) => {
if (err) {
reject(err);
} else {
resolve(rows);
}
});
});
}
function getDB(
db: sqlite3.Database,
query: string,
params: any[]
): Promise<void> {
return new Promise((resolve, reject) => {
db.get(query, params, (err, row) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
// Fonctions pour la gestion de la base de données
// Créer le répertoire db s'il n'existe pas // Créer le répertoire db s'il n'existe pas
function createDbDirectory() { function createDbDirectory() {
if (!fs.existsSync(dbDirectory)) { if (!fs.existsSync(dbDirectory)) {
@ -140,15 +188,18 @@ 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): Promise<unknown[]> {
const selectAllUsersQuery = `SELECT * FROM registered_user`; const selectAllUsersQuery = `SELECT * FROM registered_user`;
db.all(selectAllUsersQuery, [], (err, rows) => {
console.log("Tous les utilisateurs enregistrés :"); return new Promise((resolve, reject) => {
if (err) { db.all(selectAllUsersQuery, (err, rows) => {
throw err; if (err) {
} reject(err);
rows.forEach((row) => { } else {
console.log(row); console.log("Utilisateurs :");
console.log(rows);
resolve(rows);
}
}); });
}); });
} }

@ -143,11 +143,10 @@ fastify.delete("/users", async (request, reply) => {
deleteAllUsers(db); deleteAllUsers(db);
reply.send({ success: true }); reply.send({ success: true });
}); });
// Route pour récupérer tous les utilisateurs // Route pour récupérer tous les utilisateurs
fastify.get("/users", async (request, reply) => { fastify.get("/users", async (request, reply) => {
const users = selectAllUsers(db); const users = await selectAllUsers(db);
return users; reply.send(users);
}); });
// Route pour récupérer un utilisateur par son ID // Route pour récupérer un utilisateur par son ID
@ -156,7 +155,7 @@ fastify.get<{
}>("/users/:id", async (request, reply) => { }>("/users/:id", async (request, reply) => {
const { id } = request.params; const { id } = request.params;
const user = selectUserById(db, parseInt(id)); const user = selectUserById(db, parseInt(id));
return user; reply.send(user);
}); });
// Route pour récupérer un utilisateur par son login // Route pour récupérer un utilisateur par son login
@ -165,7 +164,7 @@ fastify.get<{
}>("/users/login/:login", async (request, reply) => { }>("/users/login/:login", async (request, reply) => {
const { login } = request.params; const { login } = request.params;
const user = selectUserByLogin(db, login); const user = selectUserByLogin(db, login);
return user; reply.send(user);
}); });
// Forward output from the runner to the client // Forward output from the runner to the client

Loading…
Cancel
Save