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 @@
- Récompense :
+ Récompense texte :
+ Récompense :
+
Submit
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