X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/475a7f55a8d6fd4168b33bbf7d216d961c0d6d54..54b3d528298bc6387e88dd48b634c94d350f1c7b:/src/social/api/views.py diff --git a/src/social/api/views.py b/src/social/api/views.py index 2c2383591..0ea769c4e 100644 --- a/src/social/api/views.py +++ b/src/social/api/views.py @@ -187,12 +187,17 @@ class ListItemViewV2(APIView): @never_cache class ListItemListViewV3(ListCreateAPIView): permission_classes = [IsAuthenticatedOrReadOnly] - serializer_class = serializers.UserListItemSerializer def get_queryset(self): lst = get_userlist(self.kwargs['slug'], self.request) return lst.userlistitem_set.all().order_by('order') + def get_serializer_class(self): + if self.request.method == 'GET': + return serializers.UserListItemReadSerializer + else: + return serializers.UserListItemSerializer + def get_serializer(self, *args, **kwargs): serializer_class = self.get_serializer_class() kwargs.setdefault('context', self.get_serializer_context()) @@ -207,10 +212,22 @@ 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] - serializer_class = serializers.UserListItemSerializer lookup_field = 'uuid' def get_queryset(self): @@ -218,6 +235,12 @@ class ListItemViewV3(RetrieveUpdateDestroyAPIView): list__user=self.request.user ) + def get_serializer_class(self): + if self.request.method == 'GET': + return serializers.UserListItemReadSerializer + else: + return serializers.UserListItemSerializer + @vary_on_auth class ShelfView(ListAPIView):