Skip to content
Snippets Groups Projects
Commit e7c015a8 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

added api route to get all sensors for a device

parent 1ad5d76b
Branches
Tags
No related merge requests found
......@@ -50,10 +50,30 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Device'
/device/{deviceName}/sensors:
get:
summary: Gets all sensors for a specific device
operationId: deviceSensors
parameters:
- in: path
name: deviceName
description: The device name
required: true
schema:
type: string
responses:
'200':
description: All available sensors
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Sensor'
/device/{deviceName}/sensors/{sensorName}:
get:
summary: Gets a specific device
operationId: device
summary: Gets a specific sensor for a device
operationId: deviceSensor
parameters:
- in: path
name: deviceName
......
......@@ -60,6 +60,15 @@ def construct_blueprint(settings, version):
database = Database(settings['database']['databasePath'])
return jsonify(database.get_all_sensors())
@routes.route('/device/<deviceName>/sensors/', methods=['GET'])
def get_all_sensors_for_device(deviceName):
database = Database(settings['database']['databasePath'])
device = database.get_device(deviceName)
if not device:
return jsonify({'success': False, 'msg': f'No device with name "{deviceName}" existing'})
return jsonify(database.get_all_sensors_for_device(device))
@routes.route('/device/<deviceName>/sensors/<sensorName>', methods=['GET'])
def get_sensor(deviceName, sensorName):
database = Database(settings['database']['databasePath'])
......
......@@ -82,6 +82,11 @@ class Database:
def get_all_sensors(self):
return self.__query(f'SELECT * FROM {self.TABLE_SENSOR} ORDER BY device_id, name', fetch_type=FetchType.ALL)
def get_all_sensors_for_device(self, device: Dict[str, str]):
return self.__query(f'SELECT * FROM {self.TABLE_SENSOR} WHERE device_id = ? ORDER BY name',
device['id'],
fetch_type=FetchType.ALL)
def get_sensor(self, deviceID: int, name: str):
return self.__query(f'SELECT * FROM {self.TABLE_SENSOR} WHERE device_id = ? AND name = ?',
deviceID, name,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment