From ce2aefce160a0399ccbe01b7417e5e357a249f6f Mon Sep 17 00:00:00 2001
From: Alex Wernle <awernle@usgs.gov>
Date: Tue, 8 Aug 2023 08:56:53 -0600
Subject: [PATCH] Added if statement to check if metadata already exists.

---
 geomagio/processing/copy_absolutes.py | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/geomagio/processing/copy_absolutes.py b/geomagio/processing/copy_absolutes.py
index db38d3ef..a438c246 100644
--- a/geomagio/processing/copy_absolutes.py
+++ b/geomagio/processing/copy_absolutes.py
@@ -185,10 +185,21 @@ def upload_reading(
     metadata = create_reading_metadata(
         reading=reading, created_by_label=created_by_label
     )
-    # TODO: should this check if metadata was already uploaded?
-    # TODO: should that check occur before calling this method?
+
+    # check if metadata already exists before uploading
     if metadata is not None:
-        return factory.create_metadata(metadata=metadata)
+        prior_metadata = Metadata(
+            category=MetadataCategory.READING,
+            starttime=metadata.starttime,
+            endtime=metadata.endtime,
+            station=metadata.station,
+        )
+        prior_metadata = factory.get_metadata(query=prior_metadata)
+        if len(prior_metadata) != 0:
+            print(" Metadata already exists, skipping upload")
+            pass
+        else:
+            return factory.create_metadata(metadata=metadata)
     else:
         print(" Absolute set is empty, skipping upload to webservice")
         pass
-- 
GitLab