From eb23a4f0f0504352168760821af4c265d8405db8 Mon Sep 17 00:00:00 2001 From: Alessandro DiMarco Date: Wed, 20 Dec 2017 14:42:18 -0500 Subject: [PATCH] Add filter param unit_id to data endpoint --- app/controllers/data.py | 5 +++++ app/controllers/gateway.py | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/controllers/data.py b/app/controllers/data.py index e4404da..253e18f 100644 --- a/app/controllers/data.py +++ b/app/controllers/data.py @@ -29,6 +29,11 @@ class DataController(RestController): where_tuple = where_tuple + (node_module_number,) where_statement = where_statement[:-4] + ')' + + if 'unit_id' in filter_data: + where_statement += 'AND unit_id=%s' + where_tuple = where_tuple + (filter_data['unit_id'],) + sql = "SELECT ts, value, unit, unit_id, name, sn, mod FROM data {} ORDER BY ts".format(where_statement) cur = self.redshift.get_cursor() cur = self.redshift.execute(cur, sql, where_tuple) diff --git a/app/controllers/gateway.py b/app/controllers/gateway.py index f1e706c..105cda2 100644 --- a/app/controllers/gateway.py +++ b/app/controllers/gateway.py @@ -37,12 +37,15 @@ class GatewayController(RestController): gateway['nodes'] = node_result if 'data' in filter_data and 'from' in filter_data and result: - date = filter_data.get('from') args = [('node_id[]', node_id) for node_id in node_ids] data_mapping = {} # Continue if any of the gateways have serials if args: - args.append(('from', date)) + args.append(('from', filter_data.get('from'))) + + if 'unit_id' in filter_data: + args.append(('unit_id', filter_data.get('unit_id'))) + multi_dict_args = MultiDict(args) data_result = DataController().index(multi_dict_args) # Map data to gateway serial numbers -- GitLab