From 0fbfa42a0ee45f44b1346eac145aa26e24fc80f6 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Fri, 25 Sep 2020 12:45:37 +0200 Subject: [PATCH] #delete route for measurement --- docs/api.yml | 27 +++++++++++++++++++++++++ src/blueprints/Measurements.py | 10 +++++++++ src/logic/database/MeasurementAccess.py | 5 +++++ 3 files changed, 42 insertions(+) diff --git a/docs/api.yml b/docs/api.yml index 38b4854..4d8a12f 100644 --- a/docs/api.yml +++ b/docs/api.yml @@ -219,6 +219,33 @@ paths: application/json: schema: $ref: '#/components/schemas/Measurement' + delete: + tags: + - measurement + summary: Deletes a specific measurement + operationId: deleteMeasurement + security: + - bearerAuth: [] + parameters: + - in: path + name: measurementID + description: The measurement id + required: true + schema: + type: integer + responses: + '200': + description: success response + content: + application/json: + schema: + $ref: '#/components/schemas/SuccessResponse' + default: + description: error response + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: securitySchemes: diff --git a/src/blueprints/Measurements.py b/src/blueprints/Measurements.py index 932d9fa..536b8ee 100644 --- a/src/blueprints/Measurements.py +++ b/src/blueprints/Measurements.py @@ -56,4 +56,14 @@ def construct_blueprint(settings): database.sensorAccess.add_sensor(deviceID, sensorName, sensorType) return database.sensorAccess.get_sensor_by_name_and_device_id(deviceID, sensorName) + @measurements.route('/measurement/<int:measurementID>', methods=['DELETE']) + @require_api_key(password=settings['api']['key']) + def delete_measurement(measurementID): + database = Database(settings['database']['databasePath']) + if not database.measurementAccess.get_measurement(measurementID): + return jsonify({'success': False, 'msg': f'No measurement with id "{measurementID}" existing'}) + + database.measurementAccess.delete_measurement(measurementID) + return jsonify({'success': True}) + return measurements diff --git a/src/logic/database/MeasurementAccess.py b/src/logic/database/MeasurementAccess.py index 0ff97c5..e617b0f 100644 --- a/src/logic/database/MeasurementAccess.py +++ b/src/logic/database/MeasurementAccess.py @@ -48,3 +48,8 @@ class MeasurementAccess(DatabaseAccess): self._query(f'INSERT INTO {self.TABLE_NAME}(sensor_id, value, timestamp ) VALUES(?, ?, ?)', sensorID, value, self.__get_current_datetime(), fetch_type=FetchType.NONE) + + def delete_measurement(self, measurementID: int): + LOGGER.debug(f'Deleting measurement "{measurementID}"') + self._query(f'DELETE FROM {self.TABLE_NAME} WHERE id = ?', measurementID, fetch_type=FetchType.NONE) + -- GitLab