From 1714b22cc60c4add5a98a8e652925ba56afc81ae Mon Sep 17 00:00:00 2001
From: Louis Becker <40368628-louisbecker2001@users.noreply.replit.com>
Date: Sun, 16 Mar 2025 17:50:16 +0000
Subject: [PATCH] Ajout du backend du projet

---
 index.js | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 75 insertions(+), 9 deletions(-)

diff --git a/index.js b/index.js
index 2237548..6b18778 100644
--- a/index.js
+++ b/index.js
@@ -1,5 +1,5 @@
-var express = require('express'); //import de la bibliothèque Express
-var app = express(); //instanciation d'une application Express
+var express = require('express'); // Import de la bibliothèque Express
+var app = express(); // Instanciation d'une application Express
 
 // Pour s'assurer que l'on peut faire des appels AJAX au serveur
 app.use(function(req, res, next) {
@@ -8,15 +8,81 @@ app.use(function(req, res, next) {
   next();
 });
 
-// Ici faut faire faire quelque chose à notre app...
-// On va mettre les "routes"  == les requêtes HTTP acceptéés par notre application.
-
+// Route de base
 app.get("/", function(req, res) {
-  res.send("Hello")
-})
+  res.send("Hello");
+});
+
+// Variable globale pour stocker le compteur
+let compteur = 0;
+
+// Route /cpt/query : retourne la valeur du compteur
+app.get("/cpt/query", function(req, res) {
+  res.json({ compteur: compteur });
+});
+
+// Route /cpt/inc : Incrémente de 1 par défaut OU de "v" si fourni
+app.get("/cpt/inc", function(req, res) {
+  let valeur = parseInt(req.query.v);
+  if (req.query.v === undefined) { 
+    compteur += 1;
+    res.json({ code: 0 });
+  } else if (!isNaN(valeur)) { 
+    compteur += valeur;
+    res.json({ code: 0 });
+  } else { 
+    res.json({ code: -1 });
+  }
+});
 
+/* Stockage des messages (avec pseudo et date) */
+let allMsgs = [
+  { pseudo: "Alice", msg: "Hello World", date: new Date().toLocaleString() },
+  { pseudo: "Bob", msg: "Blah Blah", date: new Date().toLocaleString() },
+  { pseudo: "Charlie", msg: "I love cats", date: new Date().toLocaleString() }
+];
 
+// Route pour récupérer TOUS les messages (corrigée)
+app.get("/msg/getAll", function(req, res) {
+  res.json(allMsgs);
+});
 
-app.listen(8080); //commence à accepter les requêtes
-console.log("App listening on port 8080...");
+// Route pour récupérer UN message par son numéro
+app.get("/msg/get/:num", function(req, res) {
+  let num = parseInt(req.params.num);
+  if (!isNaN(num) && num >= 0 && num < allMsgs.length) {
+    res.json({ code: 1, msg: allMsgs[num] });
+  } else {
+    res.json({ code: 0 });
+  }
+});
+
+// Route pour récupérer le nombre total de messages
+app.get("/msg/nber", function(req, res) {
+  res.json({ count: allMsgs.length });
+});
+
+// Route pour ajouter un message (corrigée avec pseudo et date)
+app.get("/msg/post/:pseudo/:message", function(req, res) {
+  let newMessage = {
+    pseudo: decodeURIComponent(req.params.pseudo),
+    msg: decodeURIComponent(req.params.message),
+    date: new Date().toLocaleString()
+  };
+  allMsgs.push(newMessage);
+  res.json({ code: 1, id: allMsgs.length - 1 });
+});
+
+// Route pour supprimer un message
+app.get("/msg/del/:num", function(req, res) {
+  let num = parseInt(req.params.num);
+  if (!isNaN(num) && num >= 0 && num < allMsgs.length) {
+    allMsgs.splice(num, 1);
+    res.json({ code: 1 });
+  } else {
+    res.json({ code: 0 });
+  }
+});
 
+app.listen(8080);
+console.log("Serveur démarré sur http://localhost:8080");
\ No newline at end of file
-- 
GitLab