Fix profile display backfill startup
This commit is contained in:
@@ -140,7 +140,7 @@ func profileSeedFromPublic(public any) (nickname, avatarFileID string) {
|
||||
break
|
||||
}
|
||||
}
|
||||
for _, key := range []string{"avatar_file_id", "photo", "avatar"} {
|
||||
for _, key := range []string{"avatar_file_id"} {
|
||||
if value := strings.TrimSpace(fmt.Sprint(values[key])); value != "" && value != "<nil>" {
|
||||
avatarFileID = value
|
||||
break
|
||||
|
||||
@@ -434,9 +434,7 @@ func backfillProfileDisplay(ctx context.Context, conn *sqlx.Conn, usersScoped bo
|
||||
NULLIF(JSON_UNQUOTE(JSON_EXTRACT(u.public,'$.name')), '')
|
||||
)`
|
||||
avatarExpr := `COALESCE(
|
||||
NULLIF(JSON_UNQUOTE(JSON_EXTRACT(u.public,'$.avatar_file_id')), ''),
|
||||
NULLIF(JSON_UNQUOTE(JSON_EXTRACT(u.public,'$.photo')), ''),
|
||||
NULLIF(JSON_UNQUOTE(JSON_EXTRACT(u.public,'$.avatar')), '')
|
||||
NULLIF(JSON_UNQUOTE(JSON_EXTRACT(u.public,'$.avatar_file_id')), '')
|
||||
)`
|
||||
if usersScoped {
|
||||
if _, err = conn.ExecContext(ctx, `INSERT IGNORE INTO im_user_profiles(id,tenant_id,user_id,nickname,avatar_file_id,public_account)
|
||||
|
||||
@@ -64,10 +64,14 @@ func TestProfilePublicFromFields(t *testing.T) {
|
||||
|
||||
func TestProfileSeedFromPublic(t *testing.T) {
|
||||
nickname, avatar := profileSeedFromPublic(map[string]any{
|
||||
"fn": "旧昵称",
|
||||
"photo": "file_avatar_1",
|
||||
"fn": "旧昵称",
|
||||
"avatar_file_id": "file_avatar_1",
|
||||
})
|
||||
if nickname != "旧昵称" || avatar != "file_avatar_1" {
|
||||
t.Fatalf("unexpected profile seed nickname=%q avatar=%q", nickname, avatar)
|
||||
}
|
||||
_, avatar = profileSeedFromPublic(map[string]any{"photo": "https://example.com/avatar.png"})
|
||||
if avatar != "" {
|
||||
t.Fatalf("photo URL must not be treated as avatar_file_id: %q", avatar)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user