summaryrefslogtreecommitdiff
path: root/routes/cmmnts.js
blob: 7f3ef23294a4815d5bf066b3f9b594b4ccd690a7 (plain)
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;