From 9e6bb057c08d5216cb51f86b4acddca2ce7e0b11 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Wed, 11 Oct 2023 10:37:34 +0300 Subject: CaseAttribute: Load diff from file. --- gn3/case_attributes.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gn3/case_attributes.py b/gn3/case_attributes.py index f2419de..68afae4 100644 --- a/gn3/case_attributes.py +++ b/gn3/case_attributes.py @@ -2,6 +2,7 @@ import os import csv import json +import uuid import requests import tempfile from enum import Enum, auto @@ -269,6 +270,30 @@ def __save_diff__(conn: Connection, diff_data: dict, status: EditStatus) -> int: "ts": diff_data["created"].isoformat() }) return diff_data.get("db_id") or cursor.lastrowid + +def __load_diff__(diff_filename): + """Load the diff.""" + { + "inbredset_id": inbredset_id, + "user_id": str(user.user_id), + "fieldnames": fieldnames, + "diff": __compute_diff__( + fieldnames, + __process_orig_data__( + fieldnames, + __case_attribute_values_by_inbred_set__(conn, inbredset_id), + __inbredset_strains__(conn, inbredset_id)), + __process_edit_data__(fieldnames, request.json["edit-data"])) + } + with open(diff_filename, encoding="utf8") as diff_file: + the_diff = json.loads(diff_file.read()) + return { + **the_diff, + "db_id": int(the_diff["db_id"]), + "inbredset_id": int(the_diff["inbredset_id"]), + "user_id": uuid.UUID(the_diff["user_id"]) + } + def __apply_diff__( conn: Connection, inbredset_id: int, user: User, diff_filename) -> None: """ -- cgit v1.2.3