1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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;
|