From 40372d835dfcb2c745994ebc5bd89f9d3fb58438 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Fri, 25 Sep 2020 10:14:22 +0200 Subject: [PATCH] externalized device routes --- src/StorageLeaf.py | 4 +++- src/blueprints/Devices.py | 39 +++++++++++++++++++++++++++++++++++++++ src/blueprints/Routes.py | 19 ------------------- 3 files changed, 42 insertions(+), 20 deletions(-) create mode 100644 src/blueprints/Devices.py diff --git a/src/StorageLeaf.py b/src/StorageLeaf.py index 5df9835..37a78cc 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 0000000..be7abb9 --- /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 bec5af4..1b31c78 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']) -- GitLab