From 52d05561cba2b446cfd17ef525d2bb09d75610ed Mon Sep 17 00:00:00 2001
From: Abelangel <abelange.burgosdi@hes-so.ch>
Date: Fri, 14 Mar 2025 11:22:39 +0100
Subject: [PATCH] redirections marchent, maintenant probleme de token invalid
 (a changer le nginx.conf pour ajouter les header de auth)

---
 microservices/auth/.env                       |  2 +-
 microservices/cors.conf                       | 13 +++-
 .../creation_qcm/src/routes/CreationQcm.ts    | 74 ++++++++++---------
 3 files changed, 50 insertions(+), 39 deletions(-)

diff --git a/microservices/auth/.env b/microservices/auth/.env
index f27ae780..167b0a78 100644
--- a/microservices/auth/.env
+++ b/microservices/auth/.env
@@ -3,4 +3,4 @@ API_PORT=30992
 SECRET_JWT="JECROISQUECEMESSAGEESTSECRET"
 CLIENTID = 'f8b0e14f7eee1a718ad0b3f32c52fe34813d56e9052976f076e039d006e24000'
 CLIENTSECRET = 'gloas-1451c5f206cb04b6b300e6dcbf19a01f1a44bff5e8562741a7efd0ec27eb0855'
-DATABASE_URL="postgresql://user:super@service-database/dbqcm?schema=public"
+DATABASE_URL="postgresql://user:super@service-database/dbqcm?schema=public"
\ No newline at end of file
diff --git a/microservices/cors.conf b/microservices/cors.conf
index 34310375..c63cde7d 100644
--- a/microservices/cors.conf
+++ b/microservices/cors.conf
@@ -1,8 +1,13 @@
 
-    add_header 'Access-Control-Allow-Origin' '*';
-    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
-    add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
-    add_header 'Access-Control-Max-Age' 1728000;
+# Autoriser toutes les origines
+add_header 'Access-Control-Allow-Origin' '*';
+add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
+add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
+add_header 'Access-Control-Max-Age' 1728000;
+
+# Gérer uniquement les requêtes OPTIONS avec 204
+if ($request_method = 'OPTIONS') {
     add_header 'Content-Length' 0;
     add_header 'Content-Type' 'text/plain charset=UTF-8';
     return 204;
+}
diff --git a/microservices/creation_qcm/src/routes/CreationQcm.ts b/microservices/creation_qcm/src/routes/CreationQcm.ts
index 20315131..5a77950e 100644
--- a/microservices/creation_qcm/src/routes/CreationQcm.ts
+++ b/microservices/creation_qcm/src/routes/CreationQcm.ts
@@ -10,7 +10,7 @@ const router: express.Router = express.Router();
 // router.use(verifyJWT)
 
 router.post('/QCM', verifyJWT, async (req: express.Request, res: express.Response) => {
-    console.log("CREATION QCM")
+    console.log(`[LOG] Ajout QCM avec les données:`, req.body);
     const { qcm, idUser } = req.body;
     console.log(qcm, idUser, qcm["nomQcm"], qcm["randomQuestion"], qcm["tempsMax"])
     if (!qcm || !idUser || !qcm["nomQcm"] || qcm["randomQuestion"] === undefined || qcm["tempsMax"] === undefined)
@@ -30,8 +30,46 @@ router.post('/QCM', verifyJWT, async (req: express.Request, res: express.Respons
     });
     res.status(200).send({id: qcmCreate.idQCM});
 });
+
+router.put('/QCM', verifyJWT, async (req: express.Request, res: express.Response) => {
+    console.log(`[LOG] Traitement de la création de QCM avec les données:`, req.body);
+    const { qcm } = req.body;
+    console.table(qcm)
+    if (!qcm || !qcm["nomQcm"] || qcm["randomQuestion"] === undefined || qcm["tempsMax"] === undefined || qcm["idQcm"] === undefined)
+    {
+        res.status(400).send({ error:  MessageRoute.misPara });
+        return
+    }
+    const infoQcm = await db.qcmTable.findFirst({
+        where: {
+            idQCM: qcm["idQcm"],
+        }
+    });
+    
+    if(!infoQcm)
+    {
+        res.status(404).send({ error: MessageRoute.qcmDoesntExist });
+        return
+    }
+    checkUser(req, res, infoQcm?.idUserCreator, "This is not your QCM");
+    const qcmCreate = await db.qcmTable.update({
+        where: {
+            idQCM: qcm["idQcm"]
+        },
+        data: {
+            nomQCM :  qcm["nomQcm"],
+            randomOrder : qcm["randomQuestion"],
+            temps : qcm["tempsMax"],
+        },
+    });
+    res.status(200).send(qcmCreate);
+});
+
+
 router.post('/numeric_question', verifyJWT, async (req: express.Request, res: express.Response) => {
+    console.log(`[LOG] Ajout de question numérique avec les données:`, req.body);
     const { question, idQcm } = req.body;
+   
     console.log(question, idQcm);
     if (!idQcm || !question || !question["question"] || question["nbPtsNegatif"] === undefined || question["nbPtsPositif"] === undefined || question["valNum"] === undefined || question["position"] === undefined)
     {
@@ -75,40 +113,8 @@ router.post('/numeric_question', verifyJWT, async (req: express.Request, res: ex
     res.status(200).send({id: qcmCreate.idQuestion});
 });
 
-router.put('/QCM', verifyJWT, async (req: express.Request, res: express.Response) => {
-    const { qcm } = req.body;
-    console.table(qcm)
-    if (!qcm || !qcm["nomQcm"] || qcm["randomQuestion"] === undefined || qcm["tempsMax"] === undefined || qcm["idQcm"] === undefined)
-    {
-        res.status(400).send({ error:  MessageRoute.misPara });
-        return
-    }
-    const infoQcm = await db.qcmTable.findFirst({
-        where: {
-            idQCM: qcm["idQcm"],
-        }
-    });
-    
-    if(!infoQcm)
-    {
-        res.status(404).send({ error: MessageRoute.qcmDoesntExist });
-        return
-    }
-    checkUser(req, res, infoQcm?.idUserCreator, "This is not your QCM");
-    const qcmCreate = await db.qcmTable.update({
-        where: {
-            idQCM: qcm["idQcm"]
-        },
-        data: {
-            nomQCM :  qcm["nomQcm"],
-            randomOrder : qcm["randomQuestion"],
-            temps : qcm["tempsMax"],
-        },
-    });
-    res.status(200).send(qcmCreate);
-});
-
 router.post('/true_false_question', verifyJWT, async (req: express.Request, res: express.Response) => {
+    console.log(`[LOG] Ajout question true_false avec les données:`, req.body);
     try {
         const { question, idQcm } = req.body;
         console.table(req.body)
-- 
GitLab