diff --git a/beat/web/common/api.py b/beat/web/common/api.py index 2ce7b761aacdd1e7924e5221abde3bac49a1f4c8..cb0ebdbb0c9a3662897aec6dc7f704c444fc1703 100644 --- a/beat/web/common/api.py +++ b/beat/web/common/api.py @@ -263,32 +263,12 @@ class RetrieveUpdateDestroyContributionView( serializer = self.get_serializer(db_object, fields=fields_to_return) return Response(serializer.data) - def delete(self, request, *args, **kwargs): - author_name = self.kwargs.get("author_name") - object_name = self.kwargs.get("object_name") - version = self.kwargs.get("version", None) - - # Retrieve the object - if version is None: - raise drf_exceptions.ValidationError( - {"version": "A version number must be provided"} - ) - - db_object = get_object_or_404( - self.model, - author__username__iexact=author_name, - name__iexact=object_name, - version=version, - ) - + def perform_destroy(self, instance): # Check that the object can be deleted - if not (db_object.deletable()): + if not (instance.deletable()): raise drf_exceptions.MethodNotAllowed( "The {} can't be deleted anymore (needed by an attestation, an algorithm or another data format)".format( - db_object.model_name() + instance.model_name() ) ) - - # Deletion of the object - db_object.delete() - return Response(status=204) + return super().perform_destroy(instance)