Mercurial > gemma
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 != ',' }) +}