Skip to content
Snippets Groups Projects
Commit 4b6ad3c3 authored by Samuel GAIST's avatar Samuel GAIST
Browse files

[common][api] Simplify deletion of object using perform_destroy hook

parent 23e9e6eb
No related branches found
No related tags found
1 merge request!327Refactor update creation api
......@@ -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)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment