重构代码
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package redactutil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func NormalizeMask(mask string) string {
|
||||
mask = strings.TrimSpace(mask)
|
||||
if mask == "" {
|
||||
return "[REDACTED]"
|
||||
}
|
||||
return mask
|
||||
}
|
||||
|
||||
func BuildFieldSet(fields ...string) map[string]struct{} {
|
||||
fieldMap := make(map[string]struct{}, len(fields))
|
||||
for _, field := range fields {
|
||||
field = strings.TrimSpace(strings.ToLower(field))
|
||||
if field == "" {
|
||||
continue
|
||||
}
|
||||
fieldMap[field] = struct{}{}
|
||||
}
|
||||
return fieldMap
|
||||
}
|
||||
|
||||
func LookupFieldKey(key string) string {
|
||||
return strings.TrimSpace(strings.ToLower(key))
|
||||
}
|
||||
|
||||
func MaskFields(fields map[string]interface{}, mask string) map[string]interface{} {
|
||||
if len(fields) == 0 {
|
||||
return nil
|
||||
}
|
||||
mask = NormalizeMask(mask)
|
||||
masked := make(map[string]interface{}, len(fields))
|
||||
for key := range fields {
|
||||
masked[key] = mask
|
||||
}
|
||||
return masked
|
||||
}
|
||||
|
||||
func ReplaceRegex(pattern *regexp.Regexp, text string, replacement string) (string, bool) {
|
||||
if pattern == nil || text == "" {
|
||||
return text, false
|
||||
}
|
||||
if replacement == "" {
|
||||
replacement = "[REDACTED]"
|
||||
}
|
||||
changed := pattern.ReplaceAllString(text, replacement)
|
||||
return changed, changed != text
|
||||
}
|
||||
|
||||
func IsMasked(value interface{}, mask string) bool {
|
||||
return fmt.Sprint(value) == mask
|
||||
}
|
||||
Reference in New Issue
Block a user