From 88c504bad9bbf0b16879a0be1a17d0281c532d74 Mon Sep 17 00:00:00 2001 From: Mauro Amico Date: Tue, 7 Nov 2023 10:20:22 +0100 Subject: [PATCH] Return error instead of raise Excpetion for BadRequest in querystringsearch --- CHANGES.rst | 6 ++++-- .../volto/restapi/services/querystringsearch/get.py | 12 ++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index ae93f01..3045675 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -3,12 +3,14 @@ Changelog 5.3.1 (unreleased) ------------------ + +- Return error instead of raise Excpetion for BadRequest in querystringsearch + [mamico] + - Add upgrade step and setuphandler to fix robots.txt original rules adding 'Allow: /*?expand*' [lucabel] -- Nothing changed yet. - 5.3.0 (2023-10-25) ------------------ diff --git a/src/redturtle/volto/restapi/services/querystringsearch/get.py b/src/redturtle/volto/restapi/services/querystringsearch/get.py index ce50653..fa1948c 100644 --- a/src/redturtle/volto/restapi/services/querystringsearch/get.py +++ b/src/redturtle/volto/restapi/services/querystringsearch/get.py @@ -40,17 +40,20 @@ def __call__(self): try: b_start = int(data.get("b_start", 0)) except ValueError: - raise BadRequest("Invalid b_start") + self.request.response.setStatus(400) + return dict(error=dict(type="BadRequest", message="Invalid b_start")) try: b_size = int(data.get("b_size", 25)) except ValueError: - raise BadRequest("Invalid b_size") + self.request.response.setStatus(400) + return dict(error=dict(type="BadRequest", message="Invalid b_size")) sort_on = data.get("sort_on", None) sort_order = data.get("sort_order", None) # LIMIT PATCH if not query: - raise BadRequest("No query supplied") + self.request.response.setStatus(400) + return dict(error=dict(type="BadRequest", message="No query supplied")) limit = self.get_limit(data=data) # END OF LIMIT PATCH @@ -86,7 +89,8 @@ def __call__(self): # This can happen if the query has an invalid operation, # but plone.app.querystring doesn't raise an exception # with specific info. - raise BadRequest("Invalid query.") + self.request.response.setStatus(400) + return dict(error=dict(type="BadRequest", message="Invalid query")) results = getMultiAdapter((results, self.request), ISerializeToJson)( fullobjects=fullobjects