diff options
-rw-r--r-- | backend/routes/forms/form.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/backend/routes/forms/form.py b/backend/routes/forms/form.py index 205b601..4aa940b 100644 --- a/backend/routes/forms/form.py +++ b/backend/routes/forms/form.py @@ -1,6 +1,8 @@ """ Returns, updates or deletes a single form given an ID. """ +import json.decoder + import deepmerge from pydantic import ValidationError from spectree.response import Response @@ -47,7 +49,6 @@ class SingleForm(Route): @requires(["authenticated", "admin"]) @api.validate( - json=Form, resp=Response( HTTP_200=OkayResponse, HTTP_400=ErrorMessage, @@ -57,7 +58,10 @@ class SingleForm(Route): ) async def patch(self, request: Request) -> JSONResponse: """Updates form by ID.""" - data = await request.json() + try: + data = await request.json() + except json.decoder.JSONDecodeError: + return JSONResponse("Expected a JSON body.", 400) form_id = {"_id": request.path_params["form_id"]} if raw_form := await request.state.db.forms.find_one(form_id): |