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 {
if target != "credentials" {
return value
}
items, ok := value.([]any)
if !ok {
return value
}
parts := make([]string, 0, len(items))
for _, item := range items {
m, ok := item.(map[string]any)
switch target {
case "credentials":
items, ok := value.([]any)
if !ok {
continue
return value
}
method, _ := m["method"].(string)
val, _ := m["value"].(string)
if method == "" && val == "" {
continue
}
text := method
if val != "" {
if text != "" {
text += ":"
parts := make([]string, 0, len(items))
for _, item := range items {
m, ok := item.(map[string]any)
if !ok {
continue
}
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 {
text += "(未验证)"
return strings.Join(parts, ", ")
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 {