make validateNotEmpty more generic

This commit is contained in:
Clemens 2024-01-12 14:57:22 +01:00 committed by Michael Jerger
parent c67be3b668
commit 9c37272ee9

View file

@ -7,6 +7,8 @@ import (
"fmt" "fmt"
"strings" "strings"
"unicode/utf8" "unicode/utf8"
"code.gitea.io/gitea/modules/timeutil"
) )
type Validateable interface { type Validateable interface {
@ -22,12 +24,26 @@ func IsValid(v Validateable) (bool, error) {
return true, nil return true, nil
} }
func ValidateNotEmpty(value string, fieldName string) []string { func ValidateNotEmpty(value any, fieldName string) []string {
if value == "" { isValid := true
return []string{fmt.Sprintf("Field %v may not be empty", fieldName)} switch v := value.(type) {
case string:
if v == "" {
isValid = false
} }
case timeutil.TimeStamp:
if v.IsZero() {
isValid = false
}
default:
isValid = false
}
if isValid {
return []string{} return []string{}
} }
return []string{fmt.Sprintf("Field %v may not be empty", fieldName)}
}
func ValidateMaxLen(value string, maxLen int, fieldName string) []string { func ValidateMaxLen(value string, maxLen int, fieldName string) []string {
if utf8.RuneCountInString(value) > maxLen { if utf8.RuneCountInString(value) > maxLen {