Skip to content
Snippets Groups Projects
Commit dbd271f3 authored by Tanner Prestegard's avatar Tanner Prestegard Committed by GraceDB
Browse files

api: remove non-existent label from event = 404

Trying to remove a label that was not associated with an event
gave a 400 HTTP response. Fixed to be 404. It was already correct
for superevents.
parent bb509317
No related branches found
No related tags found
No related merge requests found
...@@ -40,7 +40,7 @@ from core.vfile import VersionedFile ...@@ -40,7 +40,7 @@ from core.vfile import VersionedFile
from events.buildVOEvent import buildVOEvent, VOEventBuilderException from events.buildVOEvent import buildVOEvent, VOEventBuilderException
from events.forms import CreateEventForm from events.forms import CreateEventForm
from events.models import Event, Group, Search, Pipeline, EventLog, Tag, \ from events.models import Event, Group, Search, Pipeline, EventLog, Tag, \
Label, EMGroup, EMBBEventLog, EMSPECTRUM, VOEvent Label, Labelling, EMGroup, EMBBEventLog, EMSPECTRUM, VOEvent
from events.permission_utils import user_has_perm, filter_events_for_user, \ from events.permission_utils import user_has_perm, filter_events_for_user, \
is_external, check_external_file_access is_external, check_external_file_access
from events.translator import handle_uploaded_data from events.translator import handle_uploaded_data
...@@ -730,11 +730,13 @@ class EventLabel(InheritPermissionsAPIView): ...@@ -730,11 +730,13 @@ class EventLabel(InheritPermissionsAPIView):
@event_and_auth_required @event_and_auth_required
def delete(self, request, event, label): def delete(self, request, event, label):
try: try:
rv = delete_label(event, request, label) rv = delete_label(event, request, label)
except Labelling.DoesNotExist as e:
return Response(e.message, status=status.HTTP_404_NOT_FOUND)
except (ValueError, Label.ProtectedLabelError) as e: except (ValueError, Label.ProtectedLabelError) as e:
return Response(e.message, return Response(e.message, status=status.HTTP_400_BAD_REQUEST)
status=status.HTTP_400_BAD_REQUEST)
return Response(status=status.HTTP_204_NO_CONTENT) return Response(status=status.HTTP_204_NO_CONTENT)
......
...@@ -240,9 +240,9 @@ def delete_label(event, request, labelName, can_remove_protected=False, ...@@ -240,9 +240,9 @@ def delete_label(event, request, labelName, can_remove_protected=False,
# Next, check if the label is in the list of labels for the event. Throw out an # Next, check if the label is in the list of labels for the event. Throw out an
# error if it isn't. There might be a more elegant way of doing this. # error if it isn't. There might be a more elegant way of doing this.
if label not in event.labels.all(): if not event.labelling_set.filter(label__name=labelName).exists():
d['warning'] = "No label '%s' associated with event %s" % (labelName, event.graceid) d['warning'] = "No label '%s' associated with event %s" % (labelName, event.graceid)
raise ValueError("No label '%s' associated with event %s" % (labelName, event.graceid)) raise Labelling.DoesNotExist("No label '%s' associated with event %s" % (labelName, event.graceid))
else: else:
this_label = Labelling.objects.get( this_label = Labelling.objects.get(
event = event, event = event,
......
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