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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
const express = require('express'),
router = express.Router(),
Post = require('../models/blogPost'),
User = require('../models/user'),
Account = require('../models/account'),
middleware = require('../middleware');
//----------------------------------------
// ROUTES
//---------------------------------------
//
// Index
router.get('/:blog', (req, res) => {
User.findOne({ username: req.params.blog }, (err, foundUser) => {
if(err) {
console.log(err);
} else {
let usr ={
id: foundUser._id,
username: foundUser.username,
};
Post.find({ author: usr }, (err, posts) => {
if(err) {
console.log(err);
res.render('index');
} else {
res.render('blog/blog', { posts: posts, account: foundUser });
}
})
}
})
});
// New
router.get('/:blog/new', (req, res) => {
res.render('blog/new');
});
//Show
router.get('/:blog/:pid', (req, res) => {
Post.findById(req.params.pid).populate('comments').exec((err, foundPost) => {
if(err) {
console.log(err);
} else {
res.render('blog/show', { post: foundPost, account: req.params.blog });
}
});
});
//Create
router.post('/', middleware.isLoggedIn, (req, res) => {
let author = {
id: req.user._id,
username: req.user.username
}
req.body.post.author = author;
req.body.post.body = req.sanitize(req.body.post.body);
Post.create(req.body.post, (err, newPost) => {
if(err) {
res.render('blog/new');
} else {
res.redirect(`/blog/${req.user.username}`);
}
});
});
//Edit
router.get('/:blog/:pid/edit', middleware.checkPostOwnership, (req, res) => {
Post.findById(req.params.pid, (err, foundPost) => {
if(err) {
console.log(err);
res.redirect('back');
} else {
res.render('blog/edit', {post: foundPost});
}
});
});
//Update
router.put('/:blog/:pid', middleware.checkPostOwnership, (req, res) => {
req.body.post.body = req.sanitize(req.body.post.body);
Post.findByIdAndUpdate(req.params.pid, req.body.post, (err, updatedPost) => {
if(err) {
console.log(err);
res.redirect('back');
} else {
res.redirect(`/blog/${req.user.username}/${req.params.pid}`)
}
});
});
//Destroy
router.delete('/:blog/:pid', middleware.checkPostOwnership, (req, res) => {
Post.findByIdAndRemove(req.params.pid, (err) => {
if(err) {
res.redirect(`/blog/${req.params.blog}`);
} else {
res.redirect(`/blog/${req.params.blog}`);
}
});
})
module.exports = router;
|