From 5fa66b7d1b9403d7ef0a437a57b0354b1a80d478 Mon Sep 17 00:00:00 2001 From: clement callaert Date: Mon, 6 Nov 2023 02:44:17 +0100 Subject: [PATCH] systeme de point --- routes/posts.js | 21 +++++++++++++++++---- views/adminPage.ejs | 4 +++- views/hotLine.ejs | 22 ++++++++++++++++++++++ 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/routes/posts.js b/routes/posts.js index c123501..38c8544 100644 --- a/routes/posts.js +++ b/routes/posts.js @@ -24,14 +24,17 @@ router.post('/creerPost', async function (req,res) { const enteredTitre = postData.titre; const enteredCommentaire = postData.commentairePost; const enterdRecompense = postData.recompense; + const enterednbrRecompense = postData.nbrRecompense; const post ={ titre: enteredTitre, commentaire: enteredCommentaire, recompense: enterdRecompense, + nbrRecompense: enterednbrRecompense, isFinish: false, } + await db.getDb().collection('posts').insertOne(post); return res.redirect('/admin'); }) @@ -42,7 +45,8 @@ router.get('/hotLine', async function (req,res) { } const postData = await db.getDb().collection('posts').find().toArray(); const commandeData = await db.getDb().collection('commandes').find().toArray(); - res.render('hotLine', {postData: postData, commandeData: commandeData}) + const usersData = await db.getDb().collection('users').find().toArray(); + res.render('hotLine', {postData: postData, commandeData: commandeData, usersData: usersData}) }) router.post('/commandeCrepe', async function (req, res) { @@ -91,14 +95,23 @@ router.post('/submitResolution/:postId', upload.single('image'), async function router.post('/accepterPost/:id', async function (req, res) { const postId = req.params.id; const winner = req.body.utilisateur; - const ObjectID = mongodb.ObjectId; const postObjectId = new ObjectID(postId); + const post = await db.getDb().collection('posts').findOne({ _id: postObjectId }); + const recompense =post.nbrRecompense; + const intRecompense = parseInt(recompense, 10) + const user = await db.getDb().collection('users').findOne({nom_dutilisateur: winner}); + const point = parseInt(user.point, 10); + console.log(point) + + if (!point || isNaN(point)) { + await db.getDb().collection('users').updateOne({nom_dutilisateur: winner}, { $set: {point: intRecompense} }); + } + + await db.getDb().collection('users').updateOne({nom_dutilisateur: winner}, { $set: {point: intRecompense + point} }) await db.getDb().collection('posts').updateOne({ _id: postObjectId }, { $set: { isFinish: true, winner: winner } }); - await db.getDb().collection('res').updateOne({ _id: postObjectId }, { $set: { winner: winner } }); - return res.redirect('/admin'); }); diff --git a/views/adminPage.ejs b/views/adminPage.ejs index 4a1752d..fb96e71 100644 --- a/views/adminPage.ejs +++ b/views/adminPage.ejs @@ -82,8 +82,10 @@
- + + +
diff --git a/views/hotLine.ejs b/views/hotLine.ejs index 8857449..bc0eca8 100644 --- a/views/hotLine.ejs +++ b/views/hotLine.ejs @@ -31,6 +31,28 @@ Ici vous pouvez demandez à un espion aguerri de vous livrer des crêpes. Aussi, vous pouvez tentez de valider la chasse au trésor du jour ! Pour cela il suffit d'envoyer une photo du ticket avec l'endroit où vous l'avez trouvé.

+
+

+ Podium +

+ <% let thereIsUsers = false %> + <% usersData.forEach(user => { %> + <% if (user.point) { %> + <% thereIsUsers = true %> +

+ <%= user.nom_dutilisateur %> +

+

+ A : <%= user.point %> points +

+ <% } %> + <% }) %> + <% if (!thereIsUsers) {%> +

+ Il n'y a pas encore de participant +

+ <% } %> +

Commander