about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/metadata_edits.py75
1 files changed, 33 insertions, 42 deletions
diff --git a/wqflask/wqflask/metadata_edits.py b/wqflask/wqflask/metadata_edits.py
index bed3a44a..fdcb6597 100644
--- a/wqflask/wqflask/metadata_edits.py
+++ b/wqflask/wqflask/metadata_edits.py
@@ -42,26 +42,27 @@ from gn3.csvcmp import csv_diff
 from gn3.csvcmp import extract_invalid_csv_headers
 from gn3.csvcmp import remove_insignificant_edits
 from gn3.db import diff_from_dict
-from gn3.db import update
 from gn3.db.datasets import retrieve_sample_list, retrieve_phenotype_group_name
 from gn3.db.metadata_audit import (
     create_metadata_audit,
     fetch_probeset_metadata_audit_by_trait_name,
     fetch_phenotype_metadata_audit_by_dataset_id)
-from gn3.db.phenotypes import Phenotype
-from gn3.db.probesets import Probeset, probeset_mapping, fetch_probeset_metadata_by_name
-from gn3.db.phenotypes import Publication
-from gn3.db.phenotypes import PublishXRef
+from gn3.db.probesets import (
+    update_probeset,
+    fetch_probeset_metadata_by_name)
 from gn3.db.phenotypes import (
     fetch_trait,
     fetch_metadata,
     update_publication,
     fetch_publication_by_id,
-    fetch_publication_by_pubmed_id)
-from gn3.db.sample_data import delete_sample_data
-from gn3.db.sample_data import get_trait_sample_data, get_trait_csv_sample_data
-from gn3.db.sample_data import insert_sample_data
-from gn3.db.sample_data import update_sample_data
+    fetch_publication_by_pubmed_id,
+    update_phenotype as _update_phenotype)
+from gn3.db.sample_data import (
+    delete_sample_data,
+    insert_sample_data,
+    update_sample_data,
+    get_trait_sample_data,
+    get_trait_csv_sample_data)
 
 
 metadata_edit = Blueprint("metadata_edit", __name__)
@@ -273,13 +274,10 @@ View the diffs <a href='{url}' target='_blank'>here</a>", "success")
     }
     updated_phenotypes = ""
     with database_connection(get_setting("SQL_URI")) as conn:
-        updated_phenotypes = update(
-            conn,
-            "Phenotype",
-            data=Phenotype(**phenotype_),
-            where=Phenotype(id_=data_.get("phenotype-id")),
-        )
-        conn.commit()
+        updated_phenotypes = _update_phenotype(
+            conn, {"id_": data_["phenotype-id"], **{
+                key: value for key,value in phenotype_.items()
+                if value is not None}})
     diff_data = {}
     if updated_phenotypes:
         diff_data.update(
@@ -294,19 +292,19 @@ View the diffs <a href='{url}' target='_blank'>here</a>", "success")
                 )
             }
         )
-        publication_ = {
-            key: val for key, val in {
-                "pubmed_id": data_.get("pubmed-id"),
-                "abstract": data_.get("abstract"),
-                "authors": data_.get("authors"),
-                "title": data_.get("title"),
-                "journal": data_.get("journal"),
-                "volume": data_.get("volume"),
-                "pages": data_.get("pages"),
-                "month": data_.get("month"),
-                "year": data_.get("year"),
-            }.items() if val is not None
-        }
+    publication_ = {
+        key: val for key, val in {
+            "pubmed_id": data_.get("pubmed-id"),
+            "abstract": data_.get("abstract"),
+            "authors": data_.get("authors"),
+            "title": data_.get("title"),
+            "journal": data_.get("journal"),
+            "volume": data_.get("volume"),
+            "pages": data_.get("pages"),
+            "month": data_.get("month"),
+            "year": data_.get("year"),
+        }.items() if val is not None
+    }
     updated_publications = ""
     with database_connection(get_setting("SQL_URI")) as conn:
         existing_publication = (# fetch publication
@@ -314,12 +312,10 @@ View the diffs <a href='{url}' target='_blank'>here</a>", "success")
             fetch_publication_by_pubmed_id(conn, data_["pubmed-id"]))
 
         if existing_publication:
-            update(
-                conn,
-                "PublishXRef",
-                data=PublishXRef(publication_id=existing_publication.id_),
-                where=PublishXRef(id_=name, inbred_set_id=dataset_id)
-            )
+            update_cross_reference(conn,
+                                   dataset_id,
+                                   name,
+                                   {"publication_id": existing_publication.id_})
         else:
             updated_publications = update_publication(
                 conn, {"id_": data_["old_id_"], **publication_})
@@ -403,12 +399,7 @@ def update_probeset(name: str):
             or g.user_session.record.get("user_id")
             or ""
         )
-        if update(
-            conn,
-            "ProbeSet",
-            data=Probeset(**probeset_),
-            where=Probeset(id_=data_.get("id")),
-        ):
+        if update_probeset(conn, data["id"], probeset_):
             diff_data.update(
                 {
                     "Probeset": diff_from_dict(