about summary refs log tree commit diff
path: root/gn3
diff options
context:
space:
mode:
authorMunyoki Kilyungi2024-10-08 17:24:41 +0300
committerBonfaceKilz2024-10-14 23:50:49 +0300
commit2eb68b71a599bac47b8c30fdf1f82ca2861722e9 (patch)
treee7643547f9c050029fe579b7c1b05844fae58004 /gn3
parent123624dd7a4e8c4b53dfee09fb5c11b4dfb49119 (diff)
downloadgenenetwork3-2eb68b71a599bac47b8c30fdf1f82ca2861722e9.tar.gz
Add end-point for fetching NCBI metadata.
* gn3/api/metadata.py: Register "wiki.rif_blueprint".
* gn3/api/metadata_api/wiki.py: Import "get_rif_entries_by_symbol".
[rif_blueprint]: New blueprint.
(get_ncbi_rif_entries): New endpoint: "metadata/rif/<symbol>".

Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
Diffstat (limited to 'gn3')
-rw-r--r--gn3/api/metadata.py1
-rw-r--r--gn3/api/metadata_api/wiki.py23
2 files changed, 22 insertions, 2 deletions
diff --git a/gn3/api/metadata.py b/gn3/api/metadata.py
index 6110880..6329c69 100644
--- a/gn3/api/metadata.py
+++ b/gn3/api/metadata.py
@@ -27,6 +27,7 @@ from gn3.api.metadata_api import wiki
 
 metadata = Blueprint("metadata", __name__)
 metadata.register_blueprint(wiki.wiki_blueprint)
+metadata.register_blueprint(wiki.rif_blueprint)
 
 
 @metadata.route("/datasets/<name>", methods=["GET"])
diff --git a/gn3/api/metadata_api/wiki.py b/gn3/api/metadata_api/wiki.py
index 8df6cfb..e8c59b5 100644
--- a/gn3/api/metadata_api/wiki.py
+++ b/gn3/api/metadata_api/wiki.py
@@ -1,4 +1,4 @@
-"""API for accessing/editting wiki metadata"""
+"""API for accessing/editing rif/wiki metadata"""
 
 import datetime
 from typing import Any, Dict
@@ -12,10 +12,12 @@ from gn3.db.rdf.wiki import (
     get_wiki_entries_by_symbol,
     get_comment_history,
     update_wiki_comment,
+    get_rif_entries_by_symbol,
 )
 
 
 wiki_blueprint = Blueprint("wiki", __name__, url_prefix="wiki")
+rif_blueprint = Blueprint("rif", __name__, url_prefix="rif")
 
 
 @wiki_blueprint.route("/<int:comment_id>/edit", methods=["POST"])
@@ -83,7 +85,7 @@ def edit_wiki(comment_id: int):
                 sparql_auth_uri=current_app.config["SPARQL_AUTH_URI"]
             )
         except Exception as exc:
-            conn.rollback() # type: ignore
+            conn.rollback()  # type: ignore
             raise exc
         return jsonify({"success": "ok"})
     return jsonify(error="Error editing wiki entry, most likely due to DB error!"), 500
@@ -154,3 +156,20 @@ def get_history(comment_id):
         payload.headers["Content-Type"] = "application/ld+json"
         return payload, status_code
     return jsonify(data), status_code
+
+
+@rif_blueprint.route("/<string:symbol>", methods=["GET"])
+def get_ncbi_rif_entries(symbol: str):
+    """Fetch NCBI RIF entries"""
+    status_code = 200
+    response = get_rif_entries_by_symbol(
+        symbol,
+        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