From 36caf5f444c4f728c4a13e4b5f79028d40103ffa Mon Sep 17 00:00:00 2001 From: Abelangel <abelange.burgosdi@hes-so.ch> Date: Mon, 10 Mar 2025 14:38:31 +0100 Subject: [PATCH] =?UTF-8?q?plus=20de=20probleme=20cors=20auth,=20mais=20pa?= =?UTF-8?q?s=20tous=20les=20routes=20test=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- microservices/cors.conf | 6 -- .../creation_qcm/src/routes/CreationQcm.ts | 74 +++++++++++++++++++ microservices/nginx.conf | 14 +++- .../realise_qcm/src/routes/RealiseQcm.ts | 74 +------------------ 4 files changed, 88 insertions(+), 80 deletions(-) diff --git a/microservices/cors.conf b/microservices/cors.conf index 3043ba0e..34310375 100644 --- a/microservices/cors.conf +++ b/microservices/cors.conf @@ -1,9 +1,4 @@ -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'; -# Gestion des requĂȘtes OPTIONS -if ($request_method = OPTIONS) { 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'; @@ -11,4 +6,3 @@ 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 708fd5df..e34cf931 100644 --- a/microservices/creation_qcm/src/routes/CreationQcm.ts +++ b/microservices/creation_qcm/src/routes/CreationQcm.ts @@ -107,4 +107,78 @@ router.put('/QCM', verifyJWT, async (req: express.Request, res: express.Response res.status(200).send(qcmCreate); }); +router.post('/true_false_question', verifyJWT, async (req: express.Request, res: express.Response) => { + try { + const { question, idQcm } = req.body; + console.table(req.body) + console.log(question, idQcm) + if (!idQcm || !question || !question["question"] || !question["nbPtsNegatif"] === undefined || !question["nbPtsPositif"] === undefined || question["isVraiFaux"] === undefined || question["valVraiFaux"] === undefined) { + res.status(400).send({ error: MessageRoute.misPara }); + return + } + + const infoQcm = await db.qcmTable.findFirst({ + where: { + idQCM: idQcm + } + }); + + if (!infoQcm) { + res.status(400).send({ error:MessageRoute.qcmDoesntExist}); + return + } + checkUser(req, res, infoQcm.idUserCreator, MessageRoute.cantCreate); + + const type = await db.type.findFirst({ + where: { + nomType: "vraiFaux" + } + }); + + if (!type) { + res.status(500).send({ error: 'Server Problem: Type not found' }); + return + } + + + const questionCreate = await db.question.create({ + data: { + nbPtsNegatif: question["nbPtsNegatif"], + nbPtsPositif: question["nbPtsPositif"], + position: 0, + isMultiple: false, + question: question["question"], + idQCM: idQcm, + idType: type["idType"], + randomOrder: question["randomOrder"], + } + }); + + + if (!questionCreate) { + res.status(500).send({ error: 'Server Problem: Question creation failed' }); + return + } + + const idQuestion = questionCreate.idQuestion; + + const choixData = [ + { nomChoix: "Vrai", isCorrect: question.valVraiFaux, idQuestion: idQuestion, position: 0 }, + { nomChoix: "Faux", isCorrect: !question.valVraiFaux, idQuestion: idQuestion, position: 1 } + ]; + + const choixCreate = await db.choix.createMany({ + data: choixData + }); + if(!choixCreate){ + res.status(500).send({ error: MessageRoute.serverError }); + return + } + + res.status(200).send({id: idQuestion}); + } catch (error) { + res.status(500).send({ error: MessageRoute.serverError }); + } +}); + export default router; diff --git a/microservices/nginx.conf b/microservices/nginx.conf index 3c470461..b7e983c5 100644 --- a/microservices/nginx.conf +++ b/microservices/nginx.conf @@ -14,7 +14,7 @@ http { location /auth/jwt { proxy_pass http://service-auth:30992; - include cors.conf; + } location /helloworld { @@ -71,6 +71,18 @@ http { proxy_pass http://service-search-qcm:30992; include cors.conf; } + + location /true_false_question { + proxy_pass http://service-creation-qcm:30992; + include cors.conf; + } + + location /join { + proxy_pass http://service-realise-qcm:30992; + include cors.conf; + } + + } diff --git a/microservices/realise_qcm/src/routes/RealiseQcm.ts b/microservices/realise_qcm/src/routes/RealiseQcm.ts index a39a071d..e568382a 100644 --- a/microservices/realise_qcm/src/routes/RealiseQcm.ts +++ b/microservices/realise_qcm/src/routes/RealiseQcm.ts @@ -532,78 +532,6 @@ router.post('/numeric_response',verifyJWT, async (req: express.Request, res: ex res.status(500).send({ error: MessageRoute.serverErrorAnswering }); } }); -router.post('/true_false_question', verifyJWT, async (req: express.Request, res: express.Response) => { - try { - const { question, idQcm } = req.body; - console.table(req.body) - console.log(question, idQcm) - if (!idQcm || !question || !question["question"] || !question["nbPtsNegatif"] === undefined || !question["nbPtsPositif"] === undefined || question["isVraiFaux"] === undefined || question["valVraiFaux"] === undefined) { - res.status(400).send({ error: MessageRoute.misPara }); - return - } - - const infoQcm = await db.qcmTable.findFirst({ - where: { - idQCM: idQcm - } - }); - - if (!infoQcm) { - res.status(400).send({ error:MessageRoute.qcmDoesntExist}); - return - } - checkUser(req, res, infoQcm.idUserCreator, MessageRoute.cantCreate); - - const type = await db.type.findFirst({ - where: { - nomType: "vraiFaux" - } - }); - - if (!type) { - res.status(500).send({ error: 'Server Problem: Type not found' }); - return - } - - - const questionCreate = await db.question.create({ - data: { - nbPtsNegatif: question["nbPtsNegatif"], - nbPtsPositif: question["nbPtsPositif"], - position: 0, - isMultiple: false, - question: question["question"], - idQCM: idQcm, - idType: type["idType"], - randomOrder: question["randomOrder"], - } - }); - - - if (!questionCreate) { - res.status(500).send({ error: 'Server Problem: Question creation failed' }); - return - } - - const idQuestion = questionCreate.idQuestion; - - const choixData = [ - { nomChoix: "Vrai", isCorrect: question.valVraiFaux, idQuestion: idQuestion, position: 0 }, - { nomChoix: "Faux", isCorrect: !question.valVraiFaux, idQuestion: idQuestion, position: 1 } - ]; - - const choixCreate = await db.choix.createMany({ - data: choixData - }); - if(!choixCreate){ - res.status(500).send({ error: MessageRoute.serverError }); - return - } - - res.status(200).send({id: idQuestion}); - } catch (error) { - res.status(500).send({ error: MessageRoute.serverError }); - } -}); + export default router; -- GitLab