Allow bulk list item delete
authorRadek Czajka <rczajka@rczajka.pl>
Fri, 24 Apr 2026 09:57:41 +0000 (11:57 +0200)
committerRadek Czajka <rczajka@rczajka.pl>
Fri, 24 Apr 2026 09:57:41 +0000 (11:57 +0200)
src/social/api/urls2.py
src/social/api/views.py

index 7f6ab65..f66223e 100644 (file)
@@ -18,6 +18,7 @@ urlpatterns = [
     path('lists/', views.ListsView.as_view()),
     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/<uuid:uuid>/', views.ListItemViewV3.as_view()),
     path('lists/<slug:slug>/<slug:book>/', views.ListItemViewV2.as_view()),
 
index 6cae38a..0ea769c 100644 (file)
@@ -212,6 +212,19 @@ class ListItemListViewV3(ListCreateAPIView):
         serializer.save(list=lst)
 
 
+class ListItemsView(APIView):
+    permission_classes = [IsAuthenticated]
+
+    def delete(self, request):
+        if not isinstance(self.request.data, list):
+            return Response({"error": "no data"}, status=400)
+        models.UserListItem.objects.filter(
+            list__user=self.request.user,
+            uuid__in=self.request.data
+        ).delete()
+        return Response({})
+
+
 @never_cache
 class ListItemViewV3(RetrieveUpdateDestroyAPIView):
     permission_classes = [IsAuthenticated]