summaryrefslogtreecommitdiff
path: root/routes/cmmnts.js
diff options
context:
space:
mode:
authorBakedSnake <gilferrandm@gmail.com>2021-03-17 12:58:53 +0100
committerBakedSnake <gilferrandm@gmail.com>2021-03-17 12:58:53 +0100
commit188527c6b55a2d64d5f76c5d3e094da45c69b0c9 (patch)
tree8c6c41a2ffe04af81483ec36f72d328c3c76780a /routes/cmmnts.js
Public versionHEADmaster
Diffstat (limited to 'routes/cmmnts.js')
-rw-r--r--routes/cmmnts.js78
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