fix: stringify im admin json fields
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user