diff pkg/controllers/common.go @ 3776:6521c962a7b6

Add 'cc' parameter to search imports for a comma separated list of country codes for the the importing person.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 02 Jul 2019 16:44:04 +0200
parents 4c254651d80b
children 5f47eeea988d
line wrap: on
line diff
--- a/pkg/controllers/common.go	Tue Jul 02 11:43:12 2019 +0200
+++ b/pkg/controllers/common.go	Tue Jul 02 16:44:04 2019 +0200
@@ -100,6 +100,18 @@
 	return &ia
 }
 
+func sliceToTextArray(s []string) *pgtype.TextArray {
+	if len(s) == 0 {
+		return nil
+	}
+	var ta pgtype.TextArray
+	if err := ta.Set(s); err != nil {
+		log.Printf("warn: %v\n", err)
+		return nil
+	}
+	return &ta
+}
+
 func toTextArray(txt string, allowed []string) *pgtype.TextArray {
 	parts := strings.Split(txt, ",")
 	var accepted []string
@@ -114,13 +126,15 @@
 			}
 		}
 	}
-	if len(accepted) == 0 {
-		return nil
-	}
-	var ta pgtype.TextArray
-	if err := ta.Set(accepted); err != nil {
-		log.Printf("warn: %v\n", err)
-		return nil
-	}
-	return &ta
+	return sliceToTextArray(accepted)
 }
+
+func splitUpper(s string) []string {
+	s = strings.Map(func(r rune) rune {
+		if ('A' <= r && r <= 'Z') || r == ',' {
+			return r
+		}
+		return -1
+	}, strings.ToUpper(s))
+	return strings.FieldsFunc(s, func(r rune) bool { return r != ',' })
+}