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{}}Zo;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