refactor flag set methods
This commit is contained in:
parent
adc8177a9b
commit
b97e95827c
|
@ -33,8 +33,14 @@ func keys[V any](m map[string]V) []string {
|
||||||
return keys
|
return keys
|
||||||
}
|
}
|
||||||
|
|
||||||
func flagValueError(allowed []string) error {
|
func validateFlag[V any](v string, m map[string]V) error {
|
||||||
|
var err error
|
||||||
|
_, ok := m[v]
|
||||||
|
if !ok {
|
||||||
|
allowed := keys(m)
|
||||||
sort.Strings(allowed)
|
sort.Strings(allowed)
|
||||||
allowedList := strings.Join(allowed, ", ")
|
allowedList := strings.Join(allowed, ", ")
|
||||||
return errors.New("must be one of " + allowedList)
|
err = errors.New("must be one of " + allowedList)
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,17 +44,15 @@ func (t *leagueFlag) String() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *leagueFlag) Set(v string) error {
|
func (t *leagueFlag) Set(v string) error {
|
||||||
var err error
|
|
||||||
v = strings.ToLower(v)
|
v = strings.ToLower(v)
|
||||||
|
|
||||||
_, ok := leagueIDs[v]
|
err := validateFlag(v, leagueIDs)
|
||||||
if !ok {
|
if err != nil {
|
||||||
allowed := keys(leagueIDs)
|
|
||||||
err = flagValueError(allowed)
|
|
||||||
} else {
|
|
||||||
*t = leagueFlag(v)
|
|
||||||
}
|
|
||||||
return err
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*t = leagueFlag(v)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *leagueFlag) Type() string {
|
func (t *leagueFlag) Type() string {
|
||||||
|
|
|
@ -49,17 +49,15 @@ func (t *sportFlag) String() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *sportFlag) Set(v string) error {
|
func (t *sportFlag) Set(v string) error {
|
||||||
var err error
|
|
||||||
v = strings.ToLower(v)
|
v = strings.ToLower(v)
|
||||||
|
|
||||||
_, ok := sportIDs[v]
|
err := validateFlag(v, sportIDs)
|
||||||
if !ok {
|
if err != nil {
|
||||||
allowed := keys(sportIDs)
|
|
||||||
err = flagValueError(allowed)
|
|
||||||
} else {
|
|
||||||
*t = sportFlag(v)
|
|
||||||
}
|
|
||||||
return err
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*t = sportFlag(v)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *sportFlag) Type() string {
|
func (t *sportFlag) Type() string {
|
||||||
|
|
|
@ -61,17 +61,15 @@ func (t *teamFlag) String() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *teamFlag) Set(v string) error {
|
func (t *teamFlag) Set(v string) error {
|
||||||
var err error
|
|
||||||
v = strings.ToLower(v)
|
v = strings.ToLower(v)
|
||||||
|
|
||||||
_, ok := teamIDs[v]
|
err := validateFlag(v, teamIDs)
|
||||||
if !ok {
|
if err != nil {
|
||||||
allowed := keys(teamIDs)
|
|
||||||
err = flagValueError(allowed)
|
|
||||||
} else {
|
|
||||||
*t = teamFlag(v)
|
|
||||||
}
|
|
||||||
return err
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*t = teamFlag(v)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *teamFlag) Type() string {
|
func (t *teamFlag) Type() string {
|
||||||
|
|
Loading…
Reference in New Issue