Skip to content
Snippets Groups Projects
Sensors.py 1.71 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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