Query lists for book.
authorRadek Czajka <rczajka@rczajka.pl>
Tue, 28 Apr 2026 13:21:48 +0000 (15:21 +0200)
committerRadek Czajka <rczajka@rczajka.pl>
Tue, 28 Apr 2026 13:21:48 +0000 (15:21 +0200)
src/social/api/urls2.py
src/social/api/views.py

index f66223e..8f1dc15 100644 (file)
@@ -19,6 +19,7 @@ urlpatterns = [
     path('lists/<slug:slug>/', views.ListView.as_view()),
     path('lists/<slug:slug>/items/', views.ListItemListViewV3.as_view()),
     path('list-items/', views.ListItemsView.as_view()),
+    path('list-items/book/<slug:book>/', views.ListItemsForBook.as_view()),
     path('list-items/<uuid:uuid>/', views.ListItemViewV3.as_view()),
     path('lists/<slug:slug>/<slug:book>/', views.ListItemViewV2.as_view()),
 
index 0ea769c..2a57ad3 100644 (file)
@@ -212,6 +212,19 @@ class ListItemListViewV3(ListCreateAPIView):
         serializer.save(list=lst)
 
 
+@never_cache
+class ListItemsForBook(ListAPIView):
+    permission_classes = [IsAuthenticated]
+    serializer_class = 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]