implement upvote and downvote functionality for post