diff --git a/flashcards/views.py b/flashcards/views.py index 9605401..a6bfd5b 100644 --- a/flashcards/views.py +++ b/flashcards/views.py @@ -298,6 +298,24 @@ class FlashcardViewSet(GenericViewSet, UpdateModelMixin, CreateModelMixin, Retri return Response(serializer.data, status=HTTP_201_CREATED, headers=headers) @detail_route(methods=['post']) + def hide(self, request, pk): + """ + Hide a flashcard + --- + omit_serializer: true + parameters: + - fake: None + parameters_strategy: + form: replace + """ + obj, created = FlashcardHide.objects.get_or_create(user=request.user, flashcard=self.get_object()) + if not created: + raise ValidationError("The card has already been hidden.") + + obj.save() + return Response(status=HTTP_204_NO_CONTENT) + + @detail_route(methods=['post']) def unhide(self, request, pk): """ Report the given card @@ -310,6 +328,7 @@ class FlashcardViewSet(GenericViewSet, UpdateModelMixin, CreateModelMixin, Retri """ hide = get_object_or_404(FlashcardHide ,user=request.user, flashcard=self.get_object()) hide.delete() + return Response(status=HTTP_204_NO_CONTENT) @detail_route(methods=['post']) def report(self, request, pk):