From 4d93356b5c9c2aef794d704bc9a0e9f4c844d4ed Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Wed, 14 Oct 2020 21:16:32 +0200 Subject: [PATCH] v1.4.1 - updated api.yml and added date range functionality to measuremnts by sensor route --- docs/api.yml | 26 ++++++++++++++++++-------- src/blueprints/Sensors.py | 10 +++++++--- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/docs/api.yml b/docs/api.yml index 4028e5b..31e18a5 100644 --- a/docs/api.yml +++ b/docs/api.yml @@ -196,11 +196,11 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - /sensor/{sensorID}/measurements/{limit}: + /sensor/{sensorID}/measurements: get: tags: - sensor - summary: Gets all measurements for a specific sensor (Maximum number of results can be limited with parameter "limit". Set to "0" to disable limit.) + summary: Gets all measurements for a specific sensor (Number of results can be limited by specifying a date range). operationId: sensorMeasurements parameters: - in: path @@ -209,12 +209,22 @@ paths: required: true schema: type: integer - - in: path - name: limit - description: Maximum number of results. Set to "0" to disable limit. - required: true + - in: query + name: startDateTime + description: The start date and time of the date range that should be taken into account. + required: false schema: - type: integer + type: string + format: date-time + example: '2020-01-20 18:15:22' + - in: query + name: endDateTime + description: The end date and time of the date range that should be taken into account. + required: false + schema: + type: string + format: date-time + example: '2020-01-20 19:15:22' responses: '200': description: All available measurements @@ -279,7 +289,7 @@ paths: get: tags: - measurement - summary: Gets all measurements (Number of results can be limited by specifying a date range) + summary: Gets all measurements (Number of results can be limited by specifying a date range). operationId: measurements parameters: - in: query diff --git a/src/blueprints/Sensors.py b/src/blueprints/Sensors.py index 35294e9..312d89a 100644 --- a/src/blueprints/Sensors.py +++ b/src/blueprints/Sensors.py @@ -22,14 +22,18 @@ def construct_blueprint(settings: Dict, backupService: BackupService): database = Database(settings['database']['databasePath'], backupService) return jsonify(database.sensorAccess.get_sensor(sensorID)) - @sensors.route('/sensor/<int:sensorID>/measurements/<int:limit>', methods=['GET']) - def get_all_measurements_for_sensor_with_limit(sensorID: int, limit: int): + @sensors.route('/sensor/<int:sensorID>/measurements', methods=['GET']) + def get_all_measurements_for_sensor_with_limit(sensorID: int): database = Database(settings['database']['databasePath'], backupService) sensor = database.sensorAccess.get_sensor(sensorID) if not sensor: return jsonify({'success': False, 'msg': f'No sensor with id "{sensorID}" existing'}) - return jsonify(database.measurementAccess.get_all_measurements_for_sensor(sensorID, limit)) + startDateTime = request.args.get('startDateTime') + endDateTime = request.args.get('endDateTime') + + database = Database(settings['database']['databasePath'], backupService) + return jsonify(database.measurementAccess.get_all_measurements_for_sensor(sensorID, startDateTime, endDateTime)) @sensors.route('/sensor/<int:sensorID>/measurements/latest', methods=['GET']) def get_latest_measurements_for_sensor(sensorID: int): -- GitLab