about summary refs log tree commit diff
path: root/gn2/wqflask/views.py
diff options
context:
space:
mode:
authorAlexander_Kabui2024-08-30 17:22:00 +0300
committerAlexander_Kabui2024-08-30 17:22:00 +0300
commitf0ccf6271a577dd55f88733b2a4841b579576fe6 (patch)
tree4a5754720a95e917369a1963c87d75c37b5e3000 /gn2/wqflask/views.py
parent39cb5deed5f33122ea2cc8502945f171367db5df (diff)
parented20621c23a9a41152f3d6a48334f2a31c018033 (diff)
downloadgenenetwork2-f0ccf6271a577dd55f88733b2a4841b579576fe6.tar.gz
fix merge conflict
Diffstat (limited to 'gn2/wqflask/views.py')
-rw-r--r--gn2/wqflask/views.py69
1 files changed, 25 insertions, 44 deletions
diff --git a/gn2/wqflask/views.py b/gn2/wqflask/views.py
index 995b2b31..4421011b 100644
--- a/gn2/wqflask/views.py
+++ b/gn2/wqflask/views.py
@@ -261,35 +261,22 @@ def gsearchtable():
     return flask.jsonify(current_page)
 
 
-"""@app.route("/gnqna", methods=["POST", "GET"]) ;;feature currently disabled
-;;use ga.genenetwork.org
+@app.route("/gnqna", methods=["POST", "GET"])
 @require_oauth2
-"""
-
-
 def gnqna():
-
     if request.method == "POST":
         try:
-            def __error__(resp):
-                return resp.json()
-
             def error_page(resp):
                 return render_template("gnqa_errors.html",
                                        **{"status_code": resp.status_code, **resp.json()})
 
             def __success__(resp):
                 return render_template("gnqa_answer.html", **{"gn_server_url": GN3_LOCAL_URL, **(resp.json())})
-            """
-            disable gn-auth currently not stable
-            if not user_logged_in():
-                return error_page("Please Login/Register to  Genenetwork to access this Service")
-            """
             token = session_info()["user"]["token"].either(
                 lambda err: err, lambda tok: tok["access_token"])
-            return monad_requests.post(
+            return monad_requests.put(
                 urljoin(GN3_LOCAL_URL,
-                        "/api/llm/gnqna"),
+                        "/api/llm/search"),
                 json=dict(request.form),
                 headers={
                     "Authorization": f"Bearer {token}"
@@ -300,14 +287,7 @@ def gnqna():
                 error_page, __success__)
         except Exception as error:
             return flask.jsonify({"error": str(error)})
-    prev_queries = (monad_requests.get(
-        urljoin(GN3_LOCAL_URL,
-                "/api/llm/get_hist_names")
-    ).then(
-        lambda resp: resp
-    ).either(lambda x: [], lambda x: x.json()["prev_queries"]))
-
-    return render_template("gnqa.html", prev_queries=prev_queries)
+    return render_template("gnqa.html")
 
 
 @app.route("/editor/edit", methods=["GET"])
@@ -343,34 +323,35 @@ def commit_gn_doc():
     return render_template("gn_editor_results_page.html", **data)
 
 
-@app.route("/gnqna/hist/", methods=["GET"])
-@require_oauth2
-def get_hist_titles():
-    token = session_info()["user"]["token"].either(
-        lambda err: err, lambda tok: tok["access_token"])
-    response = monad_requests.get(urljoin(GN3_LOCAL_URL,
-                                          "/api/llm/hist/titles"),
-                                  headers={
-        "Authorization": f"Bearer {token}"
-    }
-    ).then(lambda resp: resp).either(
-        lambda x:  x.json(), lambda x: x.json())
-    return render_template("gnqa_search_history.html", **response)
-
-
-@app.route("/gnqna/hist/search/<search_term>", methods=["GET"])
+@app.route("/gnqna/hist", methods=["GET", "DELETE"])
 @require_oauth2
-def fetch_hist_records(search_term):
+def get_gnqa_history():
+    def _error_(resp):
+        return render_template("gnqa_errors.html",
+                               **{"status_code": resp.status_code,
+                                  **resp.json()})
     token = session_info()["user"]["token"].either(
         lambda err: err, lambda tok: tok["access_token"])
+    if request.method == "DELETE":
+        monad_requests.delete(urljoin(GN3_LOCAL_URL, "/api/llm/history"),
+                            json=dict(request.form),
+                            headers={
+                                 "Authorization": f"Bearer {token}"
+                            }
+                            ).either(
+                   _error_, lambda x: x.json())
     response = monad_requests.get(urljoin(GN3_LOCAL_URL,
-                                          f"/api/llm/history/{search_term}"),
+                 (f"/api/llm/history?search_term={request.args.get('search_term')}"
+                  if request.args.get("search_term") else "/api/llm/history")),
                                   headers={
         "Authorization": f"Bearer {token}"
     }
     ).then(lambda resp: resp).either(
-        lambda x:  x.json(), lambda x: x.json())
-    return render_template("gnqa_answer.html", **response)
+        _error_, lambda x: x.json())
+    if request.args.get("search_term"):
+        return render_template("gnqa_answer.html", **response)
+    return render_template("gnqa_search_history.html",
+                           prev_queries=response)
 
 
 @app.route("/gnqna/rating/<task_id>/<int(signed=True):weight>",