aboutsummaryrefslogtreecommitdiff
path: root/gn3/api/metadata.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/api/metadata.py')
-rw-r--r--gn3/api/metadata.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/gn3/api/metadata.py b/gn3/api/metadata.py
index 8f6127f..f87743b 100644
--- a/gn3/api/metadata.py
+++ b/gn3/api/metadata.py
@@ -8,13 +8,14 @@ from flask import current_app
from SPARQLWrapper import SPARQLWrapper
from gn3.db.rdf import get_dataset_metadata
+from gn3.db.rdf import get_trait_metadata
metadata = Blueprint("metadata", __name__)
@metadata.route("/dataset/<name>", methods=["GET"])
-def jsonify_dataset_metadata(name):
+def dataset_metadata(name):
"""Fetch a dataset's metadata given it's ACCESSION_ID"""
try:
return jsonify(
@@ -26,3 +27,18 @@ def jsonify_dataset_metadata(name):
# The virtuoso server is misconfigured or it isn't running at all
except (RemoteDisconnected, URLError):
return jsonify({})
+
+
+@metadata.route("/dataset/<dataset_name>/trait/<trait_name>", methods=["GET"])
+def trait_metadata(dataset_name, trait_name):
+ """Fetch a trait's metadata given the trait_name and dataset_name'"""
+ try:
+ return jsonify(
+ get_trait_metadata(
+ SPARQLWrapper(current_app.config.get("SPARQL_ENDPOINT")),
+ trait_name, dataset_name
+ ).data
+ )
+ # The virtuoso server is misconfigured or it isn't running at all
+ except (RemoteDisconnected, URLError):
+ return jsonify({})