diff options
author | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2015-11-24 08:23:34 +0100 |
---|---|---|
committer | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2015-11-24 08:23:34 +0100 |
commit | cb7e07feef16db6dffefb18101ca21d81d3b8e42 (patch) | |
tree | b5c75f7391ebdfa9742bae37a46210ad1703f920 /pyaggr3g470r/views | |
parent | Add a way to get the json encoded by jquery in the URL when using the GET met... (diff) | |
download | newspipe-cb7e07feef16db6dffefb18101ca21d81d3b8e42.tar.gz newspipe-cb7e07feef16db6dffefb18101ca21d81d3b8e42.tar.bz2 newspipe-cb7e07feef16db6dffefb18101ca21d81d3b8e42.zip |
Improved the way arguments are parsed (usefull for the mobile version of pyAggr3g470r).
Diffstat (limited to 'pyaggr3g470r/views')
-rw-r--r-- | pyaggr3g470r/views/api/common.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/pyaggr3g470r/views/api/common.py b/pyaggr3g470r/views/api/common.py index ea5172c2..6da93a3b 100644 --- a/pyaggr3g470r/views/api/common.py +++ b/pyaggr3g470r/views/api/common.py @@ -21,6 +21,7 @@ routes : DELETE resources -> to delete several """ +import ast import json import logging import dateutil.parser @@ -161,19 +162,21 @@ class PyAggResourceMulti(PyAggAbstractResource): """retrieve several objects. filters can be set in the payload on the different fields of the object, and a limit can be set in there as well """ - args = None - args = [item[0] for item in request.args.items()] - args = json.loads(args[0]) - try: limit = request.json.pop('limit', 10) order_by = request.json.pop('order_by', None) query = self.controller.read(**request.json) except: - if None is not args: - limit, order_by, query = 10, None, self.controller.read(**args) - else: - limit, order_by, query = 10, None, self.controller.read() + args = {} + for k, v in request.args.items(): + if k in self.attrs.keys(): + if self.attrs[k]['type'] in [bool, int]: + args[k] = ast.literal_eval(v) + else: + args[k] = v + limit = request.args.get('limit', 10) + order_by = request.args.get('order_by', None) + query = self.controller.read(**args) if order_by: query = query.order_by(order_by) if limit: |