From cb8d863963aca44e2822c0ddb5cb1320f9386e90 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Fri, 25 Sep 2020 10:17:06 +0200 Subject: [PATCH] externalized sensor routes --- src/blueprints/Routes.py | 47 ------------------------------------- src/blueprints/Sensors.py | 49 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 47 deletions(-) create mode 100644 src/blueprints/Sensors.py diff --git a/src/blueprints/Routes.py b/src/blueprints/Routes.py index 1b31c78..52bd876 100644 --- a/src/blueprints/Routes.py +++ b/src/blueprints/Routes.py @@ -12,25 +12,6 @@ from logic.Database import Database from logic.RequestValidator import ValidationError, RequestValidator -class DeviceParameters(Enum): - DEVICE = 'device' - SENSORS = 'sensors' - - @staticmethod - def get_values(): - return [m.value for m in DeviceParameters] - - -class SensorParameters(Enum): - NAME = 'name' - TYPE = 'type' - VALUE = 'value' - - @staticmethod - def get_values(): - return [m.value for m in SensorParameters] - - def construct_blueprint(settings, version): routes = Blueprint('routes', __name__) @@ -48,16 +29,6 @@ def construct_blueprint(settings, version): appName=Constants.APP_NAME, openApiSpecification=specification) - @routes.route('/sensors', methods=['GET']) - def get_all_sensors(): - database = Database(settings['database']['databasePath']) - return jsonify(database.sensorAccess.get_all_sensors()) - - @routes.route('/sensor/<int:sensorID>', methods=['GET']) - def get_sensor(sensorID): - database = Database(settings['database']['databasePath']) - return jsonify(database.sensorAccess.get_sensor(sensorID)) - @routes.route('/measurements', methods=['GET']) def get_all_measurements(): database = Database(settings['database']['databasePath']) @@ -68,24 +39,6 @@ def construct_blueprint(settings, version): database = Database(settings['database']['databasePath']) return jsonify(database.measurementAccess.get_measurement(measurementID)) - @routes.route('/sensor/<sensorID>/measurements', methods=['GET']) - def get_all_measurements_for_sensor(sensorID): - database = Database(settings['database']['databasePath']) - 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)) - - @routes.route('/sensor/<sensorID>/measurements/latest', methods=['GET']) - def get_latest_measurements_for_sensor(sensorID): - database = Database(settings['database']['databasePath']) - 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_latest_measurements_for_sensor(sensorID)) - @routes.route('/measurements', methods=['POST']) @require_api_key(password=settings['api']['key']) def addMeasurement(): diff --git a/src/blueprints/Sensors.py b/src/blueprints/Sensors.py new file mode 100644 index 0000000..ca44d04 --- /dev/null +++ b/src/blueprints/Sensors.py @@ -0,0 +1,49 @@ +from enum import Enum + +from flask import Blueprint, jsonify + +from logic.Database import Database + + +class SensorParameters(Enum): + NAME = 'name' + TYPE = 'type' + VALUE = 'value' + + @staticmethod + def get_values(): + return [m.value for m in SensorParameters] + + +def construct_blueprint(settings): + sensors = Blueprint('sensors', __name__) + + @sensors.route('/sensors', methods=['GET']) + def get_all_sensors(): + database = Database(settings['database']['databasePath']) + return jsonify(database.sensorAccess.get_all_sensors()) + + @sensors.route('/sensor/<int:sensorID>', methods=['GET']) + def get_sensor(sensorID): + database = Database(settings['database']['databasePath']) + return jsonify(database.sensorAccess.get_sensor(sensorID)) + + @sensors.route('/sensor/<sensorID>/measurements', methods=['GET']) + def get_all_measurements_for_sensor(sensorID): + database = Database(settings['database']['databasePath']) + 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)) + + @sensors.route('/sensor/<sensorID>/measurements/latest', methods=['GET']) + def get_latest_measurements_for_sensor(sensorID): + database = Database(settings['database']['databasePath']) + 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_latest_measurements_for_sensor(sensorID)) + + return sensors -- GitLab