aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pysite/decorators.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/pysite/decorators.py b/pysite/decorators.py
index 94239fbc..952c2349 100644
--- a/pysite/decorators.py
+++ b/pysite/decorators.py
@@ -44,7 +44,10 @@ def api_params(schema: Schema, validation_type: ValidationTypes = ValidationType
if not request.is_json:
return self.error(ErrorCodes.bad_data_format)
- data = list(request.get_json())
+ data = request.get_json()
+
+ if not isinstance(data, list):
+ data = [data]
except JSONDecodeError:
return self.error(ErrorCodes.bad_data_format) # pragma: no cover
@@ -67,13 +70,14 @@ def api_params(schema: Schema, validation_type: ValidationTypes = ValidationType
# At least one key has a different number of values
return self.error(ErrorCodes.bad_data_format) # pragma: no cover
- for i in range(longest): # Now we know all keys have the same number of values...
- obj = {} # New dict to store this set of values
+ if longest is not None:
+ for i in range(longest): # Now we know all keys have the same number of values...
+ obj = {} # New dict to store this set of values
- for key, items in multi.lists():
- obj[key] = items[i] # Store the item at that specific index
+ for key, items in multi.lists():
+ obj[key] = items[i] # Store the item at that specific index
- data.append(obj)
+ data.append(obj)
else:
raise ValueError(f"Unknown validation type: {validation_type}") # pragma: no cover