diff --git a/docs/api.yml b/docs/api.yml index 4028e5bfd153893f96ef24057db7581268951d0f..31e18a58e1e24faee524a5b39e7bc0a14986ed47 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 35294e9368ae2eb3f75af44415725e6ba4bb4c23..312d89a257ccc427ac703f274c0832083a9bbf60 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):