diff --git a/chrono/api/views.py b/chrono/api/views.py index a0a1ec48..ee844ce4 100644 --- a/chrono/api/views.py +++ b/chrono/api/views.py @@ -587,6 +587,16 @@ class Fillslots(APIView): except ValueError: events = Event.objects.filter(slug__in=slots).order_by('start_datetime') + if not events.count(): + return Response( + { + 'err': 1, + 'err_class': 'unknown event identifiers or slugs', + 'err_desc': _('unknown event identifiers or slugs'), + }, + status=status.HTTP_400_BAD_REQUEST, + ) + # search free places. Switch to waiting list if necessary. in_waiting_list = False for event in events: diff --git a/tests/test_api.py b/tests/test_api.py index 23ed41ac..568a31b1 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -684,11 +684,9 @@ def test_booking_api_fillslots(app, some_data, user): # invalid slots format resp = app.post_json('/api/agenda/%s/fillslots/' % agenda.id, params={'slots': 'foobar'}, status=400) assert resp.json['err'] == 1 - assert resp.json['reason'] == 'invalid payload' # legacy - assert resp.json['err_class'] == 'invalid payload' - assert resp.json['err_desc'] == 'invalid payload' - assert len(resp.json['errors']) == 1 - assert 'slots' in resp.json['errors'] + assert resp.json['reason'] == 'unknown event identifiers or slugs' # legacy + assert resp.json['err_class'] == 'unknown event identifiers or slugs' + assert resp.json['err_desc'] == 'unknown event identifiers or slugs' # unknown agendas resp = app.post('/api/agenda/foobar/fillslots/', status=404)