diff options
author | BakedSnake <gilferrandm@gmail.com> | 2021-03-17 12:58:53 +0100 |
---|---|---|
committer | BakedSnake <gilferrandm@gmail.com> | 2021-03-17 12:58:53 +0100 |
commit | 188527c6b55a2d64d5f76c5d3e094da45c69b0c9 (patch) | |
tree | 8c6c41a2ffe04af81483ec36f72d328c3c76780a /routes/cmmnts.js |
Diffstat (limited to 'routes/cmmnts.js')
-rw-r--r-- | routes/cmmnts.js | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/routes/cmmnts.js b/routes/cmmnts.js new file mode 100644 index 0000000..7f3ef23 --- /dev/null +++ b/routes/cmmnts.js @@ -0,0 +1,78 @@ +const express = require('express'), + router = express.Router({mergeParams: true}), + Post = require('../models/blogPost'), + Cmmnt = require('../models/cmmnt'), + middleware = require('../middleware'); + +// Comment routes +//--------------- + +// New +router.get('/new', middleware.isLoggedIn, (req, res) => { + Post.findById(req.params.pid, (err, foundPost) => { + if(err) { + console.log(err); + } else { + res.render('comments/new', { post: foundPost }); + } + }); +}); + +// Create +router.post ('/', middleware.isLoggedIn, (req, res) => { + req.body.cmmnt.text = req.sanitize(req.body.cmmnt.text); + Post.findById(req.params.pid, (err, foundPost) => { + if(err) { + console.log(err); + res.redirect('back'); + } else { + Cmmnt.create(req.body.cmmnt, (err, comment) => { + if(err) { + console.log(err); + } else { + comment.author.id = req.user._id; + comment.author.username = req.user.username; + comment.save(); + foundPost.comments.push(comment); + foundPost.save(); + return res.redirect(`/blog/${req.params.blog}/${req.params.pid}`); + } + }); + } + }); +}); + +//Edit +router.get('/:cid/edit', middleware.checkCmmntOwnership, (req, res) => { + Cmmnt.findById(req.params.cid, (err, foundCmmnt) => { + if(err) { + res.redirect('back'); + } else { + res.render('comments/edit', {account: req.params.blog, post_id: req.params.pid, comment: foundCmmnt}); + } + }); +}); + +//Update +router.put('/:cid', middleware.checkCmmntOwnership, (req, res) => { + Cmmnt.findByIdAndUpdate(req.params.cid, req.body.cmmnt, (err, updatedCmmnt) => { + if(err) { + res.redirect('back'); + } else { + res.redirect(`/blog/${req.params.blog}/${req.params.pid}`); + } + }); +}); + +//Destroy +router.delete('/:cid', middleware.checkCmmntOwnership, (req, res) => { + Cmmnt.findByIdAndRemove(req.params.cid, (err) => { + if(err) { + res.redirect('back'); + } else { + res.redirect(`/blog/${req.params.blog}/${req.params.pid}`); + } + }); +}); + +module.exports = router;
\ No newline at end of file |