def like(self, status): """ user: UserProfile - User liking the status Returns True if the action was successful """ # Check if the user already liked it if Like.get_or_none(user=self.user, status=status): return False # First we create the like object Like.create( user=self.user, status=status, ) # Update the counter in the object Status.update({ Status.favourites_count: Status.favourites_count + 1 }).where(Status.id == status.id) # Create a redis notification like_status(status, self.user) return True
def dislike(self, status): # Check if the like exists like = Like.get_or_none(user=self.user, status=status) if not like: return False like.delete().execute() Status.update({ Status.favourites_count: Status.favourites_count - 1 }).where(Status.id == status.id)