From 8cad032b84caeecb0d3d40e981dfd61f3c90d57c Mon Sep 17 00:00:00 2001
From: "narindra.rajohnso" <narindra-hasimanjaka-david.rajohnson@etu.hesge.ch>
Date: Thu, 1 Jun 2023 16:51:50 +0200
Subject: [PATCH] add id field in question create

---
 API/src/database/Database.ts                 |   6 +++---
 API/src/database/database.sqlite             | Bin 20480 -> 20480 bytes
 API/src/database/migrations/Question_init.ts |   2 +-
 API/src/database/models/Question.ts          |   2 +-
 API/src/routes/router-admin.ts               |  12 +++++++-----
 5 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/API/src/database/Database.ts b/API/src/database/Database.ts
index 47bd801..2074abf 100644
--- a/API/src/database/Database.ts
+++ b/API/src/database/Database.ts
@@ -63,7 +63,7 @@ export class Database{
 
     }
 
-    static async createQuestion(question: string, possibleResponse: string[], correctResponse: string, category: string): Promise<number> {
+    static async createQuestion(question: string, possibleResponse: string[], correctResponse: number, category: string): Promise<number> {
         let result: number=-1;
         await Question.create({
             question: question,
@@ -72,7 +72,7 @@ export class Database{
             category: category
         }).then(question => {
             console.log(`Question "${question.id}" ajouté avec succès !`);
-            result= 0;
+            result= question.id;
         }).catch(err => {
             console.log(`Une erreur s'est produite lors de l'ajout de la question: ${err}`)
             result= -1;
@@ -126,7 +126,7 @@ export class Database{
 
     }
 
-    static async updateQuestion(id: number, question?: string, possibleResponse?: string[], correctResponse?: string, category? : string){
+    static async updateQuestion(id: number, question?: string, possibleResponse?: string[], correctResponse?: number, category? : string){
         let updatedData: Question=new Question();
         updatedData.id=id;
         if(question !== undefined) updatedData.question = question;
diff --git a/API/src/database/database.sqlite b/API/src/database/database.sqlite
index a549b37535e834d3761aeb6e3bd79c68597db30c..e7da284434d84742aed929297a91ca2b3b886e74 100644
GIT binary patch
delta 711
zcmZozz}T>Wae_2s`a~IL#`KK|OZcVOc(ya}EAh4S_wl~v4dL0&qs%>t>kC&J=Y@@p
zTRAshmQ-Y9VPIgGGWmzpgn9-BhS`#-%F@aV3=9kt#Zx6k6-7Ngi&N4pOuec?^~*{<
zE7J;1%}mR~wDWz7Ly|Im6U(&?$_<SToIFwsjKVA<D@@&7ZHrUVQi{`xQ__lyQ_>uY
zQ_}SEQcH_di;N76jCBo6b&X6F3{9;JEUk=8^b9SG6|@ZutPBi{3>46$jm`B8O--TF
zAV+Rim$}O<#m2vif&Vi9JN_N~clcNFALE}7gPR2%g83&G>WfSB|6t%LPAg9<w=m`6
z=l{XL1@;6d{|^T4$&2+9xtRD4Fz|=+9pJOy%x7T82l9ENsWZQ_r)O?rW?o5ZUSeK}
zLVlh?NosLPs(rLlercwXj#6HJUaFFgQbB5IiSFT5B}J)9v4)8S1v#0?i6xo&c@Y1Z
z=^7X+7#drd7+V=w>KT|?Ks|sgYhq<=Xk}ucXK88xmaR81XcS`QU<h{yIUzYeH#aq}
zL?I<VvsfWFu_!qswMZd3wL}5QF8gSuvdj{YYjRTaN>V}Um2{Mf5(_d@Qk7y2kW?bu
zYiwm~Ze?ttXKIA%Dn*#1(WM(Tm^m5j8wL3%pSFwhGjfKw3}U3Iu8|qYqecc+#wL2E
wW=3GIfFcqak62}S85kHC`9Cu7f7~qS@R)yM01H1aBeOhXVQFeHC=iR;05jXe1ONa4

delta 550
zcmZozz}T>Wae_2s$V3@u#*mE(OZcTYxxO&)EAh4S_wl~v4dL0&qs-mG^@S^q^TNi)
zt(==LODZz5GzxNYPW~Y^L8wuJlT$KPSz1}t)3YS8DAUMfa+Q>hMQ&ndUP)?RVqS?t
zUVdp=YGP?|N}5A@VrsfxdP!+<YLStFk+H6UsjiWMf}xR>v89!Xxt@uo!DM||Q4u&#
zLEFH<%D|vekb`rxy3Ac>DNg<l2L8+Z@A!A{-{J4zpTfV2{}}&#5Zo;25X?WhP+we{
zn^~H%IITRb+`^QLi&>Hp;wnxMbMj*SL@ova1`uFoVA#xOV93XlSWu8!%gMoD?kp)h
z`J#<PhLUe$QL>Vbl2?9lYC(pQj#5x&az<iNic%~@#4kS==6VAo1tUW%19K~5OFdH~
zW2k$PWsR&%EUXMI^b9PGpt6lFT$~K{je_oz<Lu)m&$XBJbk5JsP0cGo)@EpBU}0r!
zsAp<m3Dt&QmVtqx++26^c^j$8MK<bI_}zpl%L@t-0R{&CkDCP@9`H{L;NszDEG$he
LF3HT#E9L?KF`$fA

diff --git a/API/src/database/migrations/Question_init.ts b/API/src/database/migrations/Question_init.ts
index 877119a..6402fbb 100644
--- a/API/src/database/migrations/Question_init.ts
+++ b/API/src/database/migrations/Question_init.ts
@@ -18,7 +18,7 @@ export function initQuestion(sequelize: Sequelize){
             allowNull: false
         },
         correctResponse: {
-            type: DataTypes.STRING,
+            type: DataTypes.INTEGER,
             allowNull: false
         },
         category: {
diff --git a/API/src/database/models/Question.ts b/API/src/database/models/Question.ts
index 8fe9145..294ff10 100644
--- a/API/src/database/models/Question.ts
+++ b/API/src/database/models/Question.ts
@@ -4,7 +4,7 @@ export class Question extends Model {
     public id!: number;
     public question!: string;
     public possibleResponse!: string;
-    public correctResponse!: string;
+    public correctResponse!: number;
     public category!: string;
 
     public readonly createdAt!: Date;
diff --git a/API/src/routes/router-admin.ts b/API/src/routes/router-admin.ts
index ccfb381..3a7672a 100644
--- a/API/src/routes/router-admin.ts
+++ b/API/src/routes/router-admin.ts
@@ -38,7 +38,9 @@ router.get('/:admin/list-questions',  checkExistingUser, async (req: express.Req
         const questions = await Database.getAllQuestions();
         questions.forEach(q => {
             q.possibleResponse = JSON.parse(q.possibleResponse);
+            q.correctResponse=parseInt(String(q.correctResponse));
         });
+
         res.status(StatusCodes.OK).json({ questions: questions });
 
     } catch (error) {
@@ -51,14 +53,15 @@ router.post('/:admin/create-user-account', checkExistingUser, checkUserFields,
 });
 
 router.post('/:admin/create-question', checkExistingUser, checkQuestionFields,async (req: express.Request, res: express.Response) => {
-    const data = req.body
+    const data = req.body;
     const correctResponse: string = data.possibleResponse[data.correctResponse];
     if (correctResponse !== undefined) {
         try{
-            const result=await Database.createQuestion(data.question, data.possibleResponse, correctResponse, data.category);
-            if (result === 0) {
+            const result=await Database.createQuestion(data.question, data.possibleResponse, data.correctResponse, data.category);
+            if (result !== -1) {
                 res.status(StatusCodes.OK).json({
                     new_question: {
+                        id: result,
                         question: data.question,
                         possibleResponse: data.possibleResponse,
                         correctResponse: correctResponse,
@@ -113,8 +116,7 @@ router.put('/:admin/update-question', checkExistingUser,checkIdField,async (req:
         const question = await Question.findOne({where: {id}});
         if(question){
             try{
-                const correctResponse=data.possibleResponse!==undefined?data.possibleResponse[data.correctResponse]:JSON.parse(question.possibleResponse)[data.correctResponse];
-                const nbQuestionUpdated=await Database.updateQuestion(data.id, data.question, data.possibleResponse, correctResponse, data.category);
+                const nbQuestionUpdated=await Database.updateQuestion(data.id, data.question, data.possibleResponse, data.correctResponse, data.category);
                 if(nbQuestionUpdated){
                     res.status(StatusCodes.OK).json({
                         message: `Question ${data.id} updated`
-- 
GitLab