Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- votesPost: (req, res) => {
- let votesParams = req.params.votes
- let currentThreadId = req.params.id
- let currentUserId = req.user._id
- // TODO: Add Validation if currentUser is already like the post. It's Done!
- if (votesParams === 'likes') {
- User.findById(currentUserId).then(user => {
- Thread.findById(currentThreadId).then(thread => {
- if (user.votedForThreads.indexOf(currentThreadId) > -1) {
- res.render('users/login',
- { globalError: 'You have already voted for this post' })
- return
- }
- user.votedForThreads.push(currentThreadId)
- user.save()
- ++thread.likes
- if (thread.dislikes < 0) {
- ++thread.dislikes
- }
- thread.save()
- .then(() => {
- res.redirect(`/post/${thread._id}/${thread.title}`)
- })
- })
- })
- } else if (votesParams === 'dislikes') {
- User.findById(currentUserId).then(user => {
- Thread.findById(currentThreadId).then(thread => {
- let index = user.votedForThreads.indexOf(thread._id)
- user.votedForThreads.splice(index, 1)
- user.save()
- if (user.votedForThreads.indexOf(currentThreadId) > -1) {
- res.render('users/login',
- { globalError: 'You have already voted for this post' })
- return
- }
- --thread.likes
- if (thread.likes < 0) {
- thread.likes = 0
- }
- --thread.dislikes
- if (thread.dislikes > 0) {
- thread.dislikes = 0
- }
- thread.save().then(() => {
- res.redirect(`/post/${thread._id}/${thread.title}`)
- })
- })
- })
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement