fix: stringify im admin json fields

This commit is contained in:
richjohnrambo
2026-08-28 13:34:40 +08:00
parent d7578efa2b
commit 6e08013fd1
@@ -120,37 +120,56 @@ func normalizeImAdminRow(row map[string]any, aliases map[string]string) {
} }
func normalizeImAdminValue(target string, value any) any { func normalizeImAdminValue(target string, value any) any {
if target != "credentials" { switch target {
return value case "credentials":
} items, ok := value.([]any)
items, ok := value.([]any)
if !ok {
return value
}
parts := make([]string, 0, len(items))
for _, item := range items {
m, ok := item.(map[string]any)
if !ok { if !ok {
continue return value
} }
method, _ := m["method"].(string) parts := make([]string, 0, len(items))
val, _ := m["value"].(string) for _, item := range items {
if method == "" && val == "" { m, ok := item.(map[string]any)
continue if !ok {
} continue
text := method
if val != "" {
if text != "" {
text += ":"
} }
text += val method, _ := m["method"].(string)
val, _ := m["value"].(string)
if method == "" && val == "" {
continue
}
text := method
if val != "" {
if text != "" {
text += ":"
}
text += val
}
if done, ok := m["done"].(bool); ok && !done {
text += "(未验证)"
}
parts = append(parts, text)
} }
if done, ok := m["done"].(bool); ok && !done { return strings.Join(parts, ", ")
text += "(未验证)" case "profileJson", "trustedJson", "accessJson":
return normalizeImAdminJSONString(value)
default:
return value
}
}
func normalizeImAdminJSONString(value any) string {
switch v := value.(type) {
case nil:
return ""
case string:
return v
default:
encoded, err := json.Marshal(v)
if err != nil {
return ""
} }
parts = append(parts, text) return string(encoded)
} }
return strings.Join(parts, ", ")
} }
func snakeToLowerCamel(s string) string { func snakeToLowerCamel(s string) string {