diff --git a/src/StorageLeaf.py b/src/StorageLeaf.py index 5df98352227144edce59bc82a316be934276cfae..37a78ccd9271e2bffb38ab84aa1582aec5e8610c 100644 --- a/src/StorageLeaf.py +++ b/src/StorageLeaf.py @@ -3,7 +3,7 @@ import os from TheCodeLabs_BaseUtils.DefaultLogger import DefaultLogger from TheCodeLabs_FlaskUtils.FlaskBaseApp import FlaskBaseApp -from blueprints import Routes +from blueprints import Routes, Devices from logic import Constants LOGGER = DefaultLogger().create_logger_if_not_exists(Constants.APP_NAME) @@ -15,6 +15,8 @@ class StorageLeaf(FlaskBaseApp): def _register_blueprints(self, app): app.register_blueprint(Routes.construct_blueprint(self._settings, self._version)) + app.register_blueprint(Devices.construct_blueprint(self._settings)) + return app diff --git a/src/blueprints/Devices.py b/src/blueprints/Devices.py new file mode 100644 index 0000000000000000000000000000000000000000..be7abb94f05b7d726a7eb2cfdd33e5e527983424 --- /dev/null +++ b/src/blueprints/Devices.py @@ -0,0 +1,39 @@ +from enum import Enum + +from flask import Blueprint, jsonify + +from logic.Database import Database + + +class DeviceParameters(Enum): + DEVICE = 'device' + SENSORS = 'sensors' + + @staticmethod + def get_values(): + return [m.value for m in DeviceParameters] + + +def construct_blueprint(settings): + devices = Blueprint('devices', __name__) + + @devices.route('/devices', methods=['GET']) + def get_all_devices(): + database = Database(settings['database']['databasePath']) + return jsonify(database.deviceAccess.get_all_devices()) + + @devices.route('/device/<int:deviceID>', methods=['GET']) + def get_device(deviceID): + database = Database(settings['database']['databasePath']) + return jsonify(database.deviceAccess.get_device(deviceID)) + + @devices.route('/device/<int:deviceID>/sensors/', methods=['GET']) + def get_all_sensors_for_device(deviceID): + database = Database(settings['database']['databasePath']) + device = database.deviceAccess.get_device(deviceID) + if not device: + return jsonify({'success': False, 'msg': f'No device with id "{deviceID}" existing'}) + + return jsonify(database.sensorAccess.get_all_sensors_for_device(deviceID)) + + return devices diff --git a/src/blueprints/Routes.py b/src/blueprints/Routes.py index bec5af42a2d816e102a55d7bb449ecb137d81eb9..1b31c7815ee650b456547cde8f960bdc7d1552d3 100644 --- a/src/blueprints/Routes.py +++ b/src/blueprints/Routes.py @@ -48,16 +48,6 @@ def construct_blueprint(settings, version): appName=Constants.APP_NAME, openApiSpecification=specification) - @routes.route('/devices', methods=['GET']) - def get_all_devices(): - database = Database(settings['database']['databasePath']) - return jsonify(database.deviceAccess.get_all_devices()) - - @routes.route('/device/<int:deviceID>', methods=['GET']) - def get_device(deviceID): - database = Database(settings['database']['databasePath']) - return jsonify(database.deviceAccess.get_device(deviceID)) - @routes.route('/sensors', methods=['GET']) def get_all_sensors(): database = Database(settings['database']['databasePath']) @@ -68,15 +58,6 @@ def construct_blueprint(settings, version): database = Database(settings['database']['databasePath']) return jsonify(database.sensorAccess.get_sensor(sensorID)) - @routes.route('/device/<int:deviceID>/sensors/', methods=['GET']) - def get_all_sensors_for_device(deviceID): - database = Database(settings['database']['databasePath']) - device = database.deviceAccess.get_device(deviceID) - if not device: - return jsonify({'success': False, 'msg': f'No device with id "{deviceID}" existing'}) - - return jsonify(database.sensorAccess.get_all_sensors_for_device(deviceID)) - @routes.route('/measurements', methods=['GET']) def get_all_measurements(): database = Database(settings['database']['databasePath'])