From 4d0326e998136bc330171bf760bc1e8a0a6cccf4 Mon Sep 17 00:00:00 2001 From: Munyoki Kilyungi Date: Wed, 17 Apr 2024 15:47:23 +0300 Subject: Add an endpoint to query a dataset's git history from it's id. * gn3/api/metadata.py: Import get_history. (view_history): New endpoint. * gn3/db/datasets.py (get_history): New function. Signed-off-by: Munyoki Kilyungi --- gn3/api/metadata.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'gn3/api') diff --git a/gn3/api/metadata.py b/gn3/api/metadata.py index fe7e903..a6a88fc 100644 --- a/gn3/api/metadata.py +++ b/gn3/api/metadata.py @@ -7,7 +7,8 @@ from flask import request from flask import current_app from gn3.db.datasets import (retrieve_metadata, - save_dataset_metadata) + save_metadata, + get_history) from gn3.db.rdf import RDF_PREFIXES from gn3.db.rdf import (query_frame_and_compact, query_and_compact, @@ -263,6 +264,26 @@ CONSTRUCT { ) +@metadata.route("/datasets//history") +def view_history(id_): + history = get_history( + git_dir=Path(current_app.config.get("DATA_DIR"), + "gn-docs"), + name=id_, + ).either( + lambda error: { + "error": "Unable to fetch history", + "error_description": error, + }, + lambda history: { + "id": id_, + "history": history, + }) + if history.get("error"): + raise Exception(history.get("error_description")) + return history + + @metadata.route("/datasets/search/", methods=["GET"]) def search_datasets(term): """Search datasets""" -- cgit v1.2.3