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 }