Mercurial > gemma
comparison 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 |
comparison
equal
deleted
inserted
replaced
3775:33fa76994b8a | 3776:6521c962a7b6 |
---|---|
98 return nil | 98 return nil |
99 } | 99 } |
100 return &ia | 100 return &ia |
101 } | 101 } |
102 | 102 |
103 func sliceToTextArray(s []string) *pgtype.TextArray { | |
104 if len(s) == 0 { | |
105 return nil | |
106 } | |
107 var ta pgtype.TextArray | |
108 if err := ta.Set(s); err != nil { | |
109 log.Printf("warn: %v\n", err) | |
110 return nil | |
111 } | |
112 return &ta | |
113 } | |
114 | |
103 func toTextArray(txt string, allowed []string) *pgtype.TextArray { | 115 func toTextArray(txt string, allowed []string) *pgtype.TextArray { |
104 parts := strings.Split(txt, ",") | 116 parts := strings.Split(txt, ",") |
105 var accepted []string | 117 var accepted []string |
106 for _, part := range parts { | 118 for _, part := range parts { |
107 if part = strings.ToLower(strings.TrimSpace(part)); len(part) == 0 { | 119 if part = strings.ToLower(strings.TrimSpace(part)); len(part) == 0 { |
112 accepted = append(accepted, part) | 124 accepted = append(accepted, part) |
113 break | 125 break |
114 } | 126 } |
115 } | 127 } |
116 } | 128 } |
117 if len(accepted) == 0 { | 129 return sliceToTextArray(accepted) |
118 return nil | |
119 } | |
120 var ta pgtype.TextArray | |
121 if err := ta.Set(accepted); err != nil { | |
122 log.Printf("warn: %v\n", err) | |
123 return nil | |
124 } | |
125 return &ta | |
126 } | 130 } |
131 | |
132 func splitUpper(s string) []string { | |
133 s = strings.Map(func(r rune) rune { | |
134 if ('A' <= r && r <= 'Z') || r == ',' { | |
135 return r | |
136 } | |
137 return -1 | |
138 }, strings.ToUpper(s)) | |
139 return strings.FieldsFunc(s, func(r rune) bool { return r != ',' }) | |
140 } |