Return 400 if references missing from cancel broadcast

If someone tries to cancel a broadcast but the references don’t match
and existing broadcast we correctly return a 404.

If they don’t provide any references then we get an exception. This
commit catches the missing references and returns a 400. I think this
is more appropriate because it’s malformed request, rather than a
well-formed request that doesn’t match our data. It also lets us write a
more specific and helpful error message.
This commit is contained in:
Chris Hill-Scott
2022-02-14 12:22:54 +00:00
parent 5a87d8c7d7
commit bbc444699a
4 changed files with 47 additions and 7 deletions

View File

@@ -48,6 +48,11 @@ def create_broadcast():
validate(broadcast_json, post_broadcast_schema)
if broadcast_json["msgType"] == "Cancel":
if broadcast_json["references"] is None:
raise BadRequestError(
message='Missing <references>',
status_code=400,
)
broadcast_message = _cancel_or_reject_broadcast(
broadcast_json["references"].split(","),
authenticated_service.id