Advertisement
braveheart1989

likes/unlikes

Jun 15th, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. votesPost: (req, res) => {
  2.     let votesParams = req.params.votes
  3.     let currentThreadId = req.params.id
  4.     let currentUserId = req.user._id
  5.     // TODO: Add Validation if currentUser is already like the post. It's Done!
  6.     if (votesParams === 'likes') {
  7.       User.findById(currentUserId).then(user => {
  8.         Thread.findById(currentThreadId).then(thread => {
  9.           if (user.votedForThreads.indexOf(currentThreadId) > -1) {
  10.             res.render('users/login',
  11.               { globalError: 'You have already voted for this post' })
  12.             return
  13.           }
  14.           user.votedForThreads.push(currentThreadId)
  15.           user.save()
  16.           ++thread.likes
  17.           if (thread.dislikes < 0) {
  18.             ++thread.dislikes
  19.           }
  20.           thread.save()
  21.             .then(() => {
  22.               res.redirect(`/post/${thread._id}/${thread.title}`)
  23.             })
  24.         })
  25.       })
  26.     } else if (votesParams === 'dislikes') {
  27.       User.findById(currentUserId).then(user => {
  28.         Thread.findById(currentThreadId).then(thread => {
  29.           let index = user.votedForThreads.indexOf(thread._id)
  30.           user.votedForThreads.splice(index, 1)
  31.           user.save()
  32.           if (user.votedForThreads.indexOf(currentThreadId) > -1) {
  33.             res.render('users/login',
  34.               { globalError: 'You have already voted for this post' })
  35.             return
  36.           }
  37.           --thread.likes
  38.           if (thread.likes < 0) {
  39.             thread.likes = 0
  40.           }
  41.           --thread.dislikes
  42.           if (thread.dislikes > 0) {
  43.             thread.dislikes = 0
  44.           }
  45.           thread.save().then(() => {
  46.             res.redirect(`/post/${thread._id}/${thread.title}`)
  47.           })
  48.         })
  49.       })
  50.     }
  51.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement