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 {
|
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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user