about summary refs log tree commit diff
path: root/gn3/api/metadata_api
diff options
context:
space:
mode:
authorMunyoki Kilyungi2024-08-30 07:52:08 +0300
committerBonfaceKilz2024-09-05 16:39:14 +0300
commit74337eb0c3df90215e029989ac01679f75dbd58a (patch)
tree7b8889605df9d2fdce513e489345123f927be0da /gn3/api/metadata_api
parentbdfd19d87e853fbcd2e590ec4346e5057c638cff (diff)
downloadgenenetwork3-74337eb0c3df90215e029989ac01679f75dbd58a.tar.gz
Add comment history.
* gn3/api/metadata_api/wiki.py: Import get_comment_history.
(get_history): New end-point.
* gn3/db/rdf/wiki.py: (get_comment_history): New function.

Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
Diffstat (limited to 'gn3/api/metadata_api')
-rw-r--r--gn3/api/metadata_api/wiki.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/gn3/api/metadata_api/wiki.py b/gn3/api/metadata_api/wiki.py
index 36ea03e..0e05b67 100644
--- a/gn3/api/metadata_api/wiki.py
+++ b/gn3/api/metadata_api/wiki.py
@@ -6,7 +6,8 @@ from flask import Blueprint, request, jsonify, current_app, make_response
 from gn3 import db_utils
 from gn3.db import wiki
 from gn3.db.rdf import query_frame_and_compact
-from gn3.db.rdf.wiki import get_wiki_entries_by_symbol
+from gn3.db.rdf.wiki import (get_wiki_entries_by_symbol,
+                             get_comment_history)
 
 
 wiki_blueprint = Blueprint("wiki", __name__, url_prefix="wiki")
@@ -120,3 +121,19 @@ def get_species():
         species_dict = wiki.get_species(cursor)
         return jsonify(species_dict)
     return jsonify(error="Error getting species, most likely due to DB error!"), 500
+
+
+@wiki_blueprint.route("/<int:comment_id>/history", methods=["GET"])
+def get_history(comment_id):
+    status_code = 200
+    response = get_comment_history(comment_id=comment_id,
+                                   sparql_uri=current_app.config["SPARQL_ENDPOINT"])
+    data = response.get("data")
+    if not data:
+        data = {}
+        status_code = 404
+    if request.headers.get("Accept") == "application/ld+json":
+        payload = make_response(response)
+        payload.headers["Content-Type"] = "application/ld+json"
+        return payload, status_code
+    return jsonify(data), status_code