changeset 1775:fcb0106ec510

Gauge measurement import: Added reference_code column.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 11 Jan 2019 12:10:23 +0100
parents f9ac2d4d2069
children 6a902363b435
files pkg/imports/agm.go pkg/imports/gm.go schema/gemma.sql
diffstat 3 files changed, 39 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/imports/agm.go	Fri Jan 11 12:01:26 2019 +0100
+++ b/pkg/imports/agm.go	Fri Jan 11 12:10:23 2019 +0100
@@ -22,6 +22,7 @@
 	"log"
 	"os"
 	"path/filepath"
+	"strings"
 
 	"gemma.intevation.de/gemma/pkg/common"
 )
@@ -109,8 +110,34 @@
 		return nil, err
 	}
 
+	headerIndices := map[string]int{}
+
 	for i, f := range headers {
 		log.Printf("%d: %s\n", i, f)
+		headerIndices[strings.ToLower(strings.TrimSpace(f))] = i
+	}
+
+	for _, m := range [...]string{
+		"fk_gauge_id",
+		"measure_date",
+		"from", // "sender",
+		"language_code",
+		"country_code",
+		"date_issue",
+		"reference_code",
+		"water_level",
+		"predicted",
+		"is_waterlevel",
+		"value_min",
+		"value_max",
+		"date_info",
+		"originator", // "source_organization",
+	} {
+		idx, found := headerIndices[m]
+		if !found {
+			log.Printf("missing column '%s'\n", m)
+		}
+		_ = idx
 	}
 
 	return nil, errors.New("Not implemented, yet!")
--- a/pkg/imports/gm.go	Fri Jan 11 12:01:26 2019 +0100
+++ b/pkg/imports/gm.go	Fri Jan 11 12:10:23 2019 +0100
@@ -58,6 +58,7 @@
   language_code,
   country_code,
   date_issue,
+  reference_code,
   water_level,
   predicted,
   is_waterlevel,
@@ -78,7 +79,8 @@
   $14,
   $15,
   $16,
-  $17
+  $17,
+  $18
 )
 RETURNING id`
 )
@@ -262,6 +264,13 @@
 				feedback.Warn("Invalid ISRS code %v", err)
 				continue
 			}
+			var referenceCode string
+			if wrm.Reference_code == nil {
+				feedback.Info("'Reference_code' not specified. Assuming 'ZPG'")
+				referenceCode = "ZPG"
+			} else {
+				referenceCode = *wrm.Reference_code
+			}
 			for _, measure := range wrm.Measure {
 				var unit string
 				if measure.Unit == nil {
@@ -287,6 +296,7 @@
 					msg.Identification.Language_code,
 					msg.Identification.Country_code,
 					msg.Identification.Date_issue,
+					referenceCode,
 					convert(measure.Value),
 					measure.Predicted,
 					isWaterlevel,
--- a/schema/gemma.sql	Fri Jan 11 12:01:26 2019 +0100
+++ b/schema/gemma.sql	Fri Jan 11 12:10:23 2019 +0100
@@ -274,8 +274,7 @@
         sender varchar NOT NULL, -- "from" attribute from DRC
         language_code varchar NOT NULL REFERENCES language_codes,
         date_issue timestamp with time zone NOT NULL,
-        -- reference_code varchar(4) NOT NULL REFERENCES depth_references,
-        -- XXX: Always ZPG?
+        reference_code varchar(4) NOT NULL REFERENCES depth_references,
         water_level double precision NOT NULL,
         predicted boolean NOT NULL,
         is_waterlevel boolean NOT NULL,