chore(validation): uniformize server filters build

This commit is contained in:
Quentin McGaw
2022-04-17 16:52:40 +00:00
parent 1a6f26fa3b
commit a9cfd16d53
23 changed files with 172 additions and 654 deletions

View File

@@ -1,44 +1,9 @@
package validation
import (
"sort"
"github.com/qdm12/gluetun/internal/constants"
"github.com/qdm12/gluetun/internal/models"
)
func SurfsharkRegionChoices(servers []models.Server) (choices []string) {
choices = make([]string, len(servers))
for i := range servers {
choices[i] = servers[i].Region
}
return makeUnique(choices)
}
func SurfsharkCountryChoices(servers []models.Server) (choices []string) {
choices = make([]string, len(servers))
for i := range servers {
choices[i] = servers[i].Country
}
return makeUnique(choices)
}
func SurfsharkCityChoices(servers []models.Server) (choices []string) {
choices = make([]string, len(servers))
for i := range servers {
choices[i] = servers[i].City
}
return makeUnique(choices)
}
func SurfsharkHostnameChoices(servers []models.Server) (choices []string) {
choices = make([]string, len(servers))
for i := range servers {
choices[i] = servers[i].Hostname
}
return makeUnique(choices)
}
// TODO remove in v4.
func SurfsharkRetroLocChoices() (choices []string) {
locationData := constants.SurfsharkLocationData()
@@ -49,12 +14,8 @@ func SurfsharkRetroLocChoices() (choices []string) {
continue
}
seen[data.RetroLoc] = struct{}{}
choices = append(choices, data.RetroLoc)
choices = sortedInsert(choices, data.RetroLoc)
}
sort.Slice(choices, func(i, j int) bool {
return choices[i] < choices[j]
})
return choices
}