From 53df82468cac6568183b3706f6e8cb391d5e3353 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Fri, 21 Jul 2023 08:45:34 +0300 Subject: Fetch and update publication with non-ORM functions Replace the ORM functions for fetching and updating the publication with non-ORM equivalents. --- wqflask/wqflask/metadata_edits.py | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'wqflask') diff --git a/wqflask/wqflask/metadata_edits.py b/wqflask/wqflask/metadata_edits.py index 47e2ae28..7a8bbc77 100644 --- a/wqflask/wqflask/metadata_edits.py +++ b/wqflask/wqflask/metadata_edits.py @@ -52,14 +52,18 @@ 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.phenotypes import fetch_trait, fetch_metadata, fetch_publication +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 -logger = logging.getLogger(__name__) metadata_edit = Blueprint("metadata_edit", __name__) def _get_diffs(diff_dir: str, redis_conn: redis.Redis): @@ -96,7 +100,7 @@ def edit_phenotype(conn, name, dataset_id): return { "publish_xref": publish_xref, "phenotype": fetch_metadata(conn, publish_xref["phenotype_id"]), - "publication": fetch_publication(conn, publish_xref["publication_id"]) + "publication": fetch_publication_by_id(conn, publish_xref["publication_id"]) } @@ -303,12 +307,9 @@ View the diffs here", "success") } updated_publications = "" with database_connection(get_setting("SQL_URI")) as conn: - - existing_publication = fetchone( - conn=conn, - table="Publication", - where=Publication(pubmed_id=data_.get("pubmed-id")) - ) + existing_publication = (# fetch publication + data_.get("pubmed-id") and # only if `pubmed-id` exists + fetch_publication_by_pubmed_id(conn, data_["pubmed-id"])) if existing_publication: update( @@ -318,12 +319,8 @@ View the diffs here", "success") where=PublishXRef(id_=name, inbred_set_id=dataset_id) ) else: - updated_publications = update( - conn, - "Publication", - data=Publication(**publication_), - where=Publication(id_=data_.get("old_id_")), - ) + updated_publications = update_publication( + conn, {"id_": data_["old_id_"], **publication_}) conn.commit() if updated_publications: -- cgit v1.2.3