Skip to content

Commit

Permalink
Merge branch 'bg-fix-favorites-likes-dislikes-166044739' of https://g…
Browse files Browse the repository at this point in the history
…ithub.com/andela/ah-the-immortals-backend into bg-fix-favorites-likes-dislikes-166044739
  • Loading branch information
Abraham Kamau committed May 16, 2019
2 parents b52906b + 689b44b commit 2eb0898
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 27 deletions.
2 changes: 1 addition & 1 deletion authors/apps/appnotifications/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Generated by Django 2.2 on 2019-05-14 13:13
# Generated by Django 2.2 on 2019-05-16 07:12

from django.conf import settings
from django.db import migrations, models
Expand Down
35 changes: 21 additions & 14 deletions authors/apps/articles/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,26 +57,33 @@ def get_favorite(self, instance):
is_favorited = Favorite().is_favorited(user, article)
return is_favorited

def get_ratings(self, obj):
article = self.get_likes_data()
request = self.context.get('request', None)
ratings = RatingModel().ratings(article.id, request.user.id)
return ratings
def get_like_info(self, obj):
mapped_data = {
"like": self.get_like(self),
"dislike": self.get_dislike(self),
"likeCount": obj.num_vote_up,
"dislikeCount": obj.num_vote_down
}

return mapped_data

def get_favorites(self, obj):
mapped_data = {
"favorite": self.get_favorite(self),
"favoritesCount": obj.favoritesCount,
}

return mapped_data

like = serializers.SerializerMethodField()
dislike = serializers.SerializerMethodField()
favorite = serializers.SerializerMethodField()
likesCount = serializers.ReadOnlyField(source='num_vote_up')
dislikesCount = serializers.ReadOnlyField(source='num_vote_down')
ratings = serializers.SerializerMethodField()
like_info = serializers.SerializerMethodField()
favorites = serializers.SerializerMethodField()

class Meta:
model = Article
fields = (
'slug', 'title', 'description', 'body', 'created_at',
'updated_at', 'author', 'ratings', 'tagList', 'like', 'dislike',
'likesCount', 'dislikesCount', 'comments', 'favorite',
'favoritesCount', 'readtime'
'updated_at', 'author', 'tagList', 'like_info', 'comments',
'favorites', 'readtime'
)


Expand Down
19 changes: 7 additions & 12 deletions authors/apps/articles/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,8 @@ def create(self, request):
article["author"] = request.user.pk
serializer = self.serializer_class(
data=article,
remove_fields=['like', 'created_at', 'updated_at',
'favorite', 'dislike', 'likesCount',
'dislikesCount', 'ratings'])
remove_fields=['like_info', 'created_at', 'updated_at',
'favorites'])
serializer.is_valid(raise_exception=True)
article = serializer.save(author=request.user)
data = serializer.data
Expand Down Expand Up @@ -120,11 +119,9 @@ def get(self, request):
paginator.page_size = page_limit
result = paginator.paginate_queryset(articles, request)
serializer = ArticleSerializer(result, many=True,
remove_fields=['like',
'comments',
'favorite',
'dislike',
'ratings'])
remove_fields=['like_info',
'favorites',
'comments', ])
response = paginator.get_paginated_response({
"articles": serializer.data
})
Expand Down Expand Up @@ -177,10 +174,8 @@ def patch(self, request, slug):
instance=article,
data=request.data,
partial=True,
remove_fields=['like', 'created_at', 'updated_at',
'favorite', 'dislike', 'likesCount',
'dislikesCount',
'ratings']
remove_fields=['like_info', 'created_at', 'updated_at',
'favorites']
)
serializer.is_valid(raise_exception=True)
article = serializer.save()
Expand Down

0 comments on commit 2eb0898

Please sign in to comment.