mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-05-11 09:59:56 +08:00
50 lines
928 B
Go
50 lines
928 B
Go
package notify
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func asString(value any) string {
|
|
text, _ := value.(string)
|
|
return strings.TrimSpace(text)
|
|
}
|
|
|
|
func asInt(value any) int {
|
|
switch actual := value.(type) {
|
|
case int:
|
|
return actual
|
|
case int64:
|
|
return int(actual)
|
|
case float64:
|
|
return int(actual)
|
|
case string:
|
|
parsed, _ := strconv.Atoi(strings.TrimSpace(actual))
|
|
return parsed
|
|
default:
|
|
return 0
|
|
}
|
|
}
|
|
|
|
func splitCommaValues(value string) []string {
|
|
items := strings.Split(value, ",")
|
|
result := make([]string, 0, len(items))
|
|
for _, item := range items {
|
|
trimmed := strings.TrimSpace(item)
|
|
if trimmed != "" {
|
|
result = append(result, trimmed)
|
|
}
|
|
}
|
|
return result
|
|
}
|
|
|
|
func validateRequiredConfig(config map[string]any, fields ...string) error {
|
|
for _, field := range fields {
|
|
if strings.TrimSpace(asString(config[field])) == "" {
|
|
return fmt.Errorf("%s is required", field)
|
|
}
|
|
}
|
|
return nil
|
|
}
|