Merge pull request #883 from eeintech/api_delete_inactive_part

API: Allow part deletion if inactive
This commit is contained in:
Oliver 2020-07-09 19:42:51 +10:00 committed by GitHub
commit cfd1194a6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -190,7 +190,7 @@ class PartThumbs(generics.ListAPIView):
return Response(data)
class PartDetail(generics.RetrieveUpdateAPIView):
class PartDetail(generics.RetrieveUpdateDestroyAPIView):
""" API endpoint for detail view of a single Part object """
queryset = Part.objects.all()
@ -229,6 +229,18 @@ class PartDetail(generics.RetrieveUpdateAPIView):
return self.serializer_class(*args, **kwargs)
def destroy(self, request, *args, **kwargs):
# Retrieve part
part = Part.objects.get(pk=int(kwargs['pk']))
# Check if inactive
if not part.active:
# Delete
return super(PartDetail, self).destroy(request, *args, **kwargs)
else:
# Return 405 error
message = f'Part \'{part.name}\' (pk = {part.pk}) is active: cannot delete'
return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED, data=message)
class PartList(generics.ListCreateAPIView):
""" API endpoint for accessing a list of Part objects