feat: implement PATCH dataset route
At the moment only allows for the updating of the name. Which seems to be the only editable part of dataset metadata.
This commit is contained in:
@@ -176,6 +176,31 @@ def get_dataset(dataset_id):
|
||||
print(traceback.format_exc())
|
||||
return jsonify({"error": "An unexpected error occured"}), 500
|
||||
|
||||
@app.route("/dataset/<int:dataset_id>", methods=["PATCH"])
|
||||
@jwt_required()
|
||||
def update_dataset(dataset_id):
|
||||
try:
|
||||
user_id = int(get_jwt_identity())
|
||||
|
||||
if not dataset_manager.authorize_user_dataset(dataset_id, user_id):
|
||||
raise NotAuthorisedException("This user is not authorised to access this dataset")
|
||||
|
||||
body = request.get_json()
|
||||
new_name = body.get("name")
|
||||
|
||||
if not new_name or not new_name.strip():
|
||||
return jsonify({"error": "A valid name must be provided"}), 400
|
||||
|
||||
dataset_manager.update_dataset_name(dataset_id, new_name.strip())
|
||||
return jsonify({"message": f"Dataset {dataset_id} renamed to '{new_name.strip()}'"}), 200
|
||||
except NotAuthorisedException:
|
||||
return jsonify({"error": "User is not authorised to access this content"}), 403
|
||||
except NonExistentDatasetException:
|
||||
return jsonify({"error": "Dataset does not exist"}), 404
|
||||
except Exception:
|
||||
print(traceback.format_exc())
|
||||
return jsonify({"error": "An unexpected error occurred"}), 500
|
||||
|
||||
@app.route("/dataset/<int:dataset_id>", methods=["DELETE"])
|
||||
@jwt_required()
|
||||
def delete_dataset(dataset_id):
|
||||
|
||||
@@ -145,6 +145,10 @@ class DatasetManager:
|
||||
|
||||
return result[0]
|
||||
|
||||
def update_dataset_name(self, dataset_id: int, new_name: str):
|
||||
query = "UPDATE datasets SET name = %s WHERE id = %s"
|
||||
self.db.execute(query, (new_name, dataset_id))
|
||||
|
||||
def delete_dataset_info(self, dataset_id: int):
|
||||
query = "DELETE FROM datasets WHERE id = %s"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user