Fix profile display backfill startup
This commit is contained in:
@@ -140,7 +140,7 @@ func profileSeedFromPublic(public any) (nickname, avatarFileID string) {
|
|||||||
break
|
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>" {
|
if value := strings.TrimSpace(fmt.Sprint(values[key])); value != "" && value != "<nil>" {
|
||||||
avatarFileID = value
|
avatarFileID = value
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -434,9 +434,7 @@ func backfillProfileDisplay(ctx context.Context, conn *sqlx.Conn, usersScoped bo
|
|||||||
NULLIF(JSON_UNQUOTE(JSON_EXTRACT(u.public,'$.name')), '')
|
NULLIF(JSON_UNQUOTE(JSON_EXTRACT(u.public,'$.name')), '')
|
||||||
)`
|
)`
|
||||||
avatarExpr := `COALESCE(
|
avatarExpr := `COALESCE(
|
||||||
NULLIF(JSON_UNQUOTE(JSON_EXTRACT(u.public,'$.avatar_file_id')), ''),
|
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')), '')
|
|
||||||
)`
|
)`
|
||||||
if usersScoped {
|
if usersScoped {
|
||||||
if _, err = conn.ExecContext(ctx, `INSERT IGNORE INTO im_user_profiles(id,tenant_id,user_id,nickname,avatar_file_id,public_account)
|
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) {
|
func TestProfileSeedFromPublic(t *testing.T) {
|
||||||
nickname, avatar := profileSeedFromPublic(map[string]any{
|
nickname, avatar := profileSeedFromPublic(map[string]any{
|
||||||
"fn": "旧昵称",
|
"fn": "旧昵称",
|
||||||
"photo": "file_avatar_1",
|
"avatar_file_id": "file_avatar_1",
|
||||||
})
|
})
|
||||||
if nickname != "旧昵称" || avatar != "file_avatar_1" {
|
if nickname != "旧昵称" || avatar != "file_avatar_1" {
|
||||||
t.Fatalf("unexpected profile seed nickname=%q avatar=%q", nickname, avatar)
|
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