Update comment, image, rating endpoints

This commit is contained in:
michigg 2018-03-31 23:00:07 +02:00
parent c6e0418a34
commit df7649c3e6
3 changed files with 37 additions and 8 deletions

View File

@ -1,6 +1,7 @@
from rest_framework import serializers from rest_framework import serializers
from django.contrib.auth.models import User from django.contrib.auth.models import User
from apps.food.models import UserFoodRating, UserFoodImage, UserFoodComment, SingleFood, FoodImage from apps.food.models import UserFoodRating, UserFoodImage, UserFoodComment, SingleFood, FoodImage
from apps.food.api.v1_2.serializers.main_serializers import MinimalSingleFoodSerializer
class FoodImageSerializer(serializers.HyperlinkedModelSerializer): class FoodImageSerializer(serializers.HyperlinkedModelSerializer):
@ -11,10 +12,11 @@ class FoodImageSerializer(serializers.HyperlinkedModelSerializer):
class UserFoodImageSerializer(serializers.HyperlinkedModelSerializer): class UserFoodImageSerializer(serializers.HyperlinkedModelSerializer):
image = FoodImageSerializer(many=False, read_only=True) image = FoodImageSerializer(many=False, read_only=True)
food = MinimalSingleFoodSerializer(many=False, read_only=True)
class Meta: class Meta:
model = UserFoodImage model = UserFoodImage
fields = ('id', 'image') fields = ('id', 'food', 'image')
class SingleFoodSerializer(serializers.HyperlinkedModelSerializer): class SingleFoodSerializer(serializers.HyperlinkedModelSerializer):
@ -44,7 +46,7 @@ class UserCommentsSerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = UserFoodComment model = UserFoodComment
fields = ('id', 'food', 'comment') fields = ('id', 'food', 'description', 'title')
class UserInformationSerializer(serializers.HyperlinkedModelSerializer): class UserInformationSerializer(serializers.HyperlinkedModelSerializer):

View File

@ -20,7 +20,7 @@ from apps.food.models import Menu
urlpatterns = [ urlpatterns = [
# API Version 1.1 # API Version 1.1
url(r'^account/$', api_views.UserInformations.as_view(), name='api-v1_1-user-information'), url(r'^account/$', api_views.UserInformations.as_view(), name='api-v1_1-user-information'),
url(r'^account/food/rating/$', api_views.UserRatings.as_view(), name='api-v1_1-user-rating'), url(r'^account/food/ratings/$', api_views.UserRatings.as_view(), name='api-v1_1-user-rating'),
url(r'^account/food/pic/$', api_views.UserImages.as_view(), name='api-v1_1-user-image'), url(r'^account/food/images/$', api_views.UserImages.as_view(), name='api-v1_1-user-image'),
url(r'^account/food/comment/$', api_views.UserComments.as_view(), name='api-v1_1-user-comment'), url(r'^account/food/comments/$', api_views.UserComments.as_view(), name='api-v1_1-user-comment'),
] ]

View File

@ -23,7 +23,16 @@ class UserRatings(generics.ListAPIView):
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.request.user
return UserFoodRating.objects.filter(user=user).order_by('food__name') food_id = self.request.query_params.get('food_id')
queryset = UserFoodRating.objects.filter(user=user).order_by('food__name')
if food_id:
try:
queryset = queryset.filter(food_id=food_id)
except ValueError as e:
# TODO: return Exception
return []
return queryset
@permission_classes((IsAuthenticated,)) @permission_classes((IsAuthenticated,))
@ -32,7 +41,16 @@ class UserImages(generics.ListAPIView):
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.request.user
return UserFoodImage.objects.filter(user=user).order_by('food__name') food_id = self.request.query_params.get('food_id')
queryset = UserFoodImage.objects.filter(user=user).order_by('food__name')
if food_id:
try:
queryset = queryset.filter(food_id=food_id)
except ValueError as e:
# TODO: return Exception
return []
return queryset
@permission_classes((IsAuthenticated,)) @permission_classes((IsAuthenticated,))
@ -41,4 +59,13 @@ class UserComments(generics.ListAPIView):
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.request.user
return UserFoodComment.objects.filter(user=user).order_by('food__name') food_id = self.request.query_params.get('food_id')
queryset = UserFoodComment.objects.filter(user=user).order_by('food__name')
if food_id:
try:
queryset = queryset.filter(food_id=food_id)
except ValueError as e:
# TODO: return Exception
return []
return queryset