Esempio n. 1
0
    def post(self,request):
        data = json.loads(request.body)

        try:
            if data['post_id']:

                if Post.objects.filter(id=data['post_id']).exists():
                    user_id =   request.user.id

                    if Like.objects.filter(post_id=data['post_id'],user_id=user_id).exists():
                        target_post         =   Post.objects.get(id=data['post_id'])
                        target_post.likes  -=   1
                        target_post.save()
                        like_obj            =   Like.objects.filter(post_id=data['post_id'],user_id=request.user.id)
                        like_obj.delete()
                        return JsonResponse({'message':f"Unlike post id:{data['post_id']}"}, status=200)

                    target_post         =   Post.objects.get(id=data['post_id'])
                    target_post.likes   +=  1
                    target_post.save()
                    like_obj            =   Like(post_id=data['post_id'],user_id=request.user.id)
                    like_obj.save()

                    return JsonResponse({'message':f"Like post id:{data['post_id']}"}, status=200)

                return JsonResponse({'message':'INVALID_Post_id'}, status=401)

        except KeyError:
            return JsonResponse({'message': 'KEY_ERROR'}, status=400)
Esempio n. 2
0
def like(request):
    user = User.objects.get(username=request.POST['user'])
    post = Post.objects.get(pk=request.POST['post'])
    like = Like(user=user, profile=user.profile, post=post)
    like.save()
    post.likes = post.likes + 1
    post.save()
    return JsonResponse({'message': 'ok'})
Esempio n. 3
0
def set_like(*, like: Like, kind: Union[bool, None]):
    """
    Set Kind Like if is not equal old value else delete like instance
    User click like first time - post like
    User click second time - like will remove
    """
    if kind is not None:
        if like.kind != kind:
            like.kind = kind
            like.save()
            return
    like.delete()
Esempio n. 4
0
    def setUp(self):
        """Setup database with post with likes."""
        user = User(password='******',
                    username='******',
                    email='*****@*****.**')
        user.save()

        post = Post(body='The body of a post.', user=user)
        post.save()

        like = Like(post=post, user=user)
        like.save()

        dislike = Dislike(post=post, user=user)
        dislike.save()
Esempio n. 5
0
def like_post_view(request, id_post):
    from posts.models import Post, Like
    profile = request.user.profile
    post = Post.objects.filter(pk=id_post)
    if post.count() == 0:
        return redirect('/posts/%i/' % id_post)
    post = post[0]

    if Like.objects.filter(post=post, user=profile).count() != 0:
        likes = Like.objects.filter(post=post, user=profile)
        likes.delete()
        return redirect('/posts/%i/' % id_post)

    new_like = Like(user=profile, post=post)
    new_like.save()

    return redirect('/posts/%i/' % id_post)
Esempio n. 6
0
 def post(self, request):
     data = request.data
     serializer = LikeSerializer(data=data)
     if serializer.is_valid(raise_exception=True):
         post = get_object_or_404(Post.objects.all(), pk=data['post_id'])
         user = request.user
         try:
             existing_like = Like.objects.get(user=user, post=post)
             existing_like.delete()
             return Response({
                 "success": "Post unliked!"
             })
         except Like.DoesNotExist:
             like = Like()
             like.save(user=user, post=post)
             return Response({
                 "success": "Post liked!"
             })
Esempio n. 7
0
 def like(self, request, *args, **kwargs):
     post = self.get_object()
     try:
         Like.objects.get(post_id=post.id, user_id=request.user.id)
         return Response(
             {
                 'message':
                 'User {} already liked the post {}'.format(
                     request.user.id, post.id)
             },
             status=HTTP_400_BAD_REQUEST)
     except ObjectDoesNotExist:
         like = Like(post_id=post.id,
                     user_id=request.user.id,
                     date=timezone.now())
         like.save()
         return Response({
             'message':
             'Post {} was liked by user {}'.format(post.id, request.user.id)
         })
Esempio n. 8
0
 def get(self, request, postId):
     post = Post.objects.get(id=postId)
     like = Like.objects.filter(author=self.request.user, post=post)
     like_list = {}
     comment_list = {}
     likes_total = {}  #added
     if like.exists():
         like.delete()
     else:
         like = Like(author=self.request.user, post=post)
         like.save()
     like_list[post.id] = Like.objects.filter(post=post)
     comment_list[post.id] = Comment.objects.filter(post=post)
     likes_total[post.id] = len(Like.objects.filter(post=post))  #added
     return render(
         request,
         'posts/like.html',
         {
             'like_list': like_list,
             'comment_list': comment_list,
             'likes_total': likes_total,  #added
             'post': post
         })
 def _generate_post_likes(self):
     users = User.objects.all()[:10]
     for user in users:
         print(f"Creating likes by {user.first_name} {user.last_name}",
               end="\r")
         n_iteration = random.randint(self._min_number_likes_per_post,
                                      self._number_likes_per_post)
         for i in range(n_iteration):
             like = Like()
             like.user = user
             like.post = Post.objects.order_by('?').first()
             like.save()