const express = require('express'); const mongodb = require('mongodb') const bcrypt = require('bcryptjs'); const multer = require('multer') const storageConfig = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'images'); }, filename: function (req, file, cb) { cb(null, Date.now() + '-' + file.originalname); } }); const upload = multer({storage: storageConfig}); const db = require('../data/database'); const router = express.Router(); router.post('/creerPost', async function (req,res) { const postData = req.body; 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'); }) router.get('/hotLine', async function (req,res) { if (!req.session.isAuthenticated) { return res.status(401).render('401'); } const postData = await db.getDb().collection('posts').find().toArray(); const commandeData = await db.getDb().collection('commandes').find().toArray(); 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) { const crepeData = req.body; const enteredCommentaire = crepeData.commentaire; const enteredGarniture = crepeData.garniture; const nom = req.session.user.nom; const prenom = req.session.user.prenom; const crepeCommande = { garniture: enteredGarniture, commentaire: enteredCommentaire, nom: nom, prenom: prenom, finish: false } await db.getDb().collection('commandes').insertOne(crepeCommande); res.redirect("/hotLine"); }) router.post('/submitResolution/:postId', upload.single('image'), async function (req, res) { const postId = req.params.postId; // Assuming postId is obtained from the request const resolutionData = req.body; const enteredDescription = resolutionData.description; const user = req.session.user; const nom = user.nom; const prenom = user.prenom; const file = req.file; const path = file.path; const resolution = { postId: postId, description: enteredDescription, nom: nom, prenom: prenom, imagePath: path } console.log("here5") await db.getDb().collection('res').insertOne(resolution); return res.redirect('/hotLine') }) 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'); }); router.post('/supprimerPost/:id', async function (req, res) { const postId = req.params.id; const ObjectID = mongodb.ObjectId; const postObjectId = new ObjectID(postId); await db.getDb().collection('posts').deleteOne({ _id: postObjectId }); return res.redirect('/admin'); }); router.post('/isFinish/:id', async function (req, res) { const postId = req.params.id; const ObjectID = mongodb.ObjectId; const postObjectId = new ObjectID(postId); await db.getDb().collection('commandes').updateOne({ _id: postObjectId }, {$set: {isFinish: true}}); return res.redirect('/admin'); }) module.exports = router;