summaryrefslogtreecommitdiff
path: root/internal/db/bundb/account.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/bundb/account.go')
-rw-r--r--internal/db/bundb/account.go33
1 files changed, 32 insertions, 1 deletions
diff --git a/internal/db/bundb/account.go b/internal/db/bundb/account.go
index 43e5055e1..fdee8cb76 100644
--- a/internal/db/bundb/account.go
+++ b/internal/db/bundb/account.go
@@ -254,7 +254,7 @@ func (a *accountDB) getAccount(ctx context.Context, lookup string, dbQuery func(
func (a *accountDB) PopulateAccount(ctx context.Context, account *gtsmodel.Account) error {
var (
err error
- errs = gtserror.NewMultiError(3)
+ errs = gtserror.NewMultiError(5)
)
if account.AvatarMediaAttachment == nil && account.AvatarMediaAttachmentID != "" {
@@ -279,6 +279,37 @@ func (a *accountDB) PopulateAccount(ctx context.Context, account *gtsmodel.Accou
}
}
+ if !account.AlsoKnownAsPopulated() {
+ // Account alsoKnownAs accounts are
+ // out-of-date with URIs, repopulate.
+ alsoKnownAs := make([]*gtsmodel.Account, 0)
+ for _, uri := range account.AlsoKnownAsURIs {
+ akaAcct, err := a.state.DB.GetAccountByURI(
+ gtscontext.SetBarebones(ctx),
+ uri,
+ )
+ if err != nil {
+ errs.Appendf("error populating also known as account %s: %w", uri, err)
+ continue
+ }
+
+ alsoKnownAs = append(alsoKnownAs, akaAcct)
+ }
+
+ account.AlsoKnownAs = alsoKnownAs
+ }
+
+ if account.MovedTo == nil && account.MovedToURI != "" {
+ // Account movedTo is not set, fetch from database.
+ account.MovedTo, err = a.state.DB.GetAccountByURI(
+ gtscontext.SetBarebones(ctx),
+ account.MovedToURI,
+ )
+ if err != nil {
+ errs.Appendf("error populating moved to account: %w", err)
+ }
+ }
+
if !account.EmojisPopulated() {
// Account emojis are out-of-date with IDs, repopulate.
account.Emojis, err = a.state.DB.GetEmojisByIDs(