fix for bookmarks
[wolnelektury.git] / src / social / api / views.py
index 0ea769c..35af9a8 100644 (file)
@@ -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