diff --git a/api-customer/src/controllers/telemetryController.py b/api-customer/src/controllers/telemetryController.py index c9c16f6d..7bcdfc0d 100644 --- a/api-customer/src/controllers/telemetryController.py +++ b/api-customer/src/controllers/telemetryController.py @@ -15,21 +15,15 @@ class TelemetryController: self._database_service = database_service def _register_routes(self, app): + app.add_url_rule("/telemetry/history/rfid", view_func=self.rfid, methods=['GET']) app.add_url_rule("/telemetry/history/sound", view_func=self.sound, methods=['GET']) app.add_url_rule("/telemetry/history/light", view_func=self.light, methods=['GET']) app.add_url_rule("/telemetry/history/gps", view_func=self.gps, methods=['GET']) - def sound(self): + def rfid(self): try: odata_filter = request.args.get("$filter") - start_timestamp, end_timestamp = self._extract_dates_from_odata(odata_filter) - results = self._database_service.find_by_date( - collection="telemetry", - filters={"type": "sound"}, - timestamp_field="timestamp", - start_time=start_timestamp, - end_time=end_timestamp - ) + results = self._query("rfid", odata_filter) return jsonify({"success" : True, "data" : results}), 200 except Exception as e: logger.log_info(e) @@ -38,17 +32,16 @@ class TelemetryController: def light(self): try: odata_filter = request.args.get("$filter") - start_timestamp, end_timestamp = self._extract_dates_from_odata(odata_filter) - logger.log_info(start_timestamp) - logger.log_info(end_timestamp) - results = self._database_service.find_by_date( - collection="telemetry", - filters={"type": "light"}, - timestamp_field="timestamp", - start_time=start_timestamp, - end_time=end_timestamp - ) - logger.log_info(f"Returned {len(results)} results ") + results = self._query("light", odata_filter) + return jsonify({"success" : True, "data" : results}), 200 + except Exception as e: + logger.log_info(e) + return jsonify({"success": False, "data": None}), 500 + + def sound(self): + try: + odata_filter = request.args.get("$filter") + results = self._query("sound", odata_filter) return jsonify({"success" : True, "data" : results}), 200 except Exception as e: logger.log_info(e) @@ -58,23 +51,25 @@ class TelemetryController: def gps(self): try: odata_filter = request.args.get("$filter") - logger.log_info(odata_filter) - start_timestamp, end_timestamp = self._extract_dates_from_odata(odata_filter) - logger.log_info(start_timestamp) - logger.log_info(end_timestamp) - results = self._database_service.find_by_date( - collection="telemetry", - filters={"type": "gps"}, - timestamp_field="timestamp", - start_time=start_timestamp, - end_time=end_timestamp - ) - logger.log_info(f"Returned {len(results)} results ") + results = self._query("gps", odata_filter) return jsonify({"success" : True, "data" : results}), 200 except Exception as e: logger.log_info(e) return jsonify({"success": False, "data": None}), 500 + def _query(self, sensor_type : str, query_filter : str): + start_timestamp, end_timestamp = self._extract_dates_from_odata(query_filter) + logger.log_info(start_timestamp) + logger.log_info(end_timestamp) + results = self._database_service.find_by_date( + collection="telemetry", + filters={"type": "gps"}, + timestamp_field="timestamp", + start_time=start_timestamp, + end_time=end_timestamp + ) + logger.log_info(f"Returned {len(results)} results ") + return results def _extract_dates_from_odata(self, filter_str):