X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/54b3d528298bc6387e88dd48b634c94d350f1c7b..55efada7f210cda246203bdef15bdd781ad26cfe:/src/social/api/views.py diff --git a/src/social/api/views.py b/src/social/api/views.py index 0ea769c4e..35af9a8ca 100644 --- a/src/social/api/views.py +++ b/src/social/api/views.py @@ -194,7 +194,10 @@ class ListItemListViewV3(ListCreateAPIView): def get_serializer_class(self): if self.request.method == 'GET': - return serializers.UserListItemReadSerializer + if self.request.version < 'v4': + return serializers.UserListItemReadSerializerV3 + else: + return serializers.UserListItemReadSerializer else: return serializers.UserListItemSerializer @@ -212,6 +215,24 @@ class ListItemListViewV3(ListCreateAPIView): serializer.save(list=lst) +@never_cache +class ListItemsForBook(ListAPIView): + permission_classes = [IsAuthenticated] + + def get_serializer_class(self): + if self.request.version < 'v4': + return serializers.UserListItemReadSerializerV3 + else: + return serializers.UserListItemReadSerializer + + def get_queryset(self): + book = get_object_or_404(catalogue.models.Book, slug=self.kwargs['book']) + return models.UserListItem.objects.filter( + list__user=self.request.user, + book=book, + ) + + class ListItemsView(APIView): permission_classes = [IsAuthenticated] @@ -237,7 +258,10 @@ class ListItemViewV3(RetrieveUpdateDestroyAPIView): def get_serializer_class(self): if self.request.method == 'GET': - return serializers.UserListItemReadSerializer + if self.request.version < 'v4': + return serializers.UserListItemReadSerializerV3 + else: + return serializers.UserListItemReadSerializer else: return serializers.UserListItemSerializer