about summary refs log tree commit diff
path: root/gn3
diff options
context:
space:
mode:
Diffstat (limited to 'gn3')
-rw-r--r--gn3/auth/authorisation/data/views.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/gn3/auth/authorisation/data/views.py b/gn3/auth/authorisation/data/views.py
index d84b080..6431389 100644
--- a/gn3/auth/authorisation/data/views.py
+++ b/gn3/auth/authorisation/data/views.py
@@ -175,7 +175,7 @@ def __search_genotypes__():
             limit=limit, offset=offset)
         return jsonify(with_db_connection(__ungrouped__))
 
-def __search_phenotypes__():
+def __search_xapian__():
     # launch the external process to search for phenotypes
     redisuri = app.config["REDIS_URI"]
     with redis.Redis.from_url(redisuri, decode_responses=True) as redisconn:
@@ -184,6 +184,7 @@ def __search_phenotypes__():
         command =[
             sys.executable, "-m", "scripts.search_phenotypes",
             __request_key__("species_name"),
+            __request_key__("dataset_type"),
             __request_key__("query"),
             str(job_id),
             f"--host={__request_key__('gn3_server_uri')}",
@@ -193,6 +194,10 @@ def __search_phenotypes__():
             f"--per-page={__request_key__('per_page')}"] +(
                 [f"--selected={json.dumps(selected)}"]
                 if len(selected) > 0 else [])
+        print("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
+        import shlex
+        print(shlex.join(command))
+        print("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
         jobs.create_job(redisconn, {
             "job_id": job_id, "command": command, "status": "queued",
             "search_results": tuple()})
@@ -203,20 +208,21 @@ def __search_phenotypes__():
             "command": command
         })
 
-@data.route("/search", methods=["GET"])
+@data.route("/search", methods=["POST"])
 @require_oauth("profile group resource")
+@require_json
 def search_unlinked_data():
     """Search for various unlinked data."""
     dataset_type = request.json["dataset_type"]
     search_fns = {
         "mrna": __search_mrna__,
-        "genotype": __search_genotypes__,
-        "phenotype": __search_phenotypes__
+        "genotype": __search_xapian__,
+        "phenotype": __search_xapian__
     }
     return search_fns[dataset_type]()
 
-@data.route("/search/phenotype/<uuid:job_id>", methods=["GET"])
-def pheno_search_results(job_id: uuid.UUID) -> Response:
+@data.route("/search/results/<uuid:job_id>", methods=["GET"])
+def search_job_results(job_id: uuid.UUID) -> Response:
     """Get the search results from the external script"""
     def __search_error__(err):
         raise NotFoundError(err["error_description"])