diff --git a/API/src/database/Database.ts b/API/src/database/Database.ts index 47bd801084ab4137a0814ad3f5ea99a7cb4ea6f4..2074abff3f4ddf33ef428489622b3aad3f4eeef8 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 Binary files a/API/src/database/database.sqlite and b/API/src/database/database.sqlite differ diff --git a/API/src/database/migrations/Question_init.ts b/API/src/database/migrations/Question_init.ts index 877119ad3f6a47bdee03e8acc2cbb055f5607806..6402fbb850ca9eab90d95c2cf58f781a17165283 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 8fe9145bdeda595e653e0938606a96dd39084ed3..294ff109fa26136a018d34a7351149ef6f2461f6 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 ccfb381001ff5a3f98142b178d08c21b531274f0..3a7672abe342412d1fdcd4f6d81365225779f711 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`