示例#1
0
    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
示例#2
0
    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)