diff options
Diffstat (limited to 'internal/processing/account')
-rw-r--r-- | internal/processing/account/delete.go | 61 |
1 files changed, 18 insertions, 43 deletions
diff --git a/internal/processing/account/delete.go b/internal/processing/account/delete.go index f71f08954..bf7f60d67 100644 --- a/internal/processing/account/delete.go +++ b/internal/processing/account/delete.go @@ -57,7 +57,6 @@ import ( // 18. Delete account itself func (p *processor) Delete(ctx context.Context, account *gtsmodel.Account, origin string) gtserror.WithCode { fields := kv.Fields{ - {"username", account.Username}, } if account.Domain != "" { @@ -163,7 +162,7 @@ selectStatusesLoop: // pass the status delete through the client api channel for processing s.Account = account - l.Debug("putting status in the client api channel") + l.Debug("putting status delete in the client api channel") p.clientWorker.Queue(messages.FromClientAPI{ APObjectType: ap.ObjectNote, APActivityType: ap.ActivityDelete, @@ -172,50 +171,26 @@ selectStatusesLoop: TargetAccount: account, }) - if err := p.db.DeleteByID(ctx, s.ID, s); err != nil { - if !errors.Is(err, db.ErrNoEntries) { - // actual error has occurred - l.Errorf("Delete: db error deleting status %s for account %s: %s", s.ID, account.Username, err) - continue - } - } - // if there are any boosts of this status, delete them as well - boosts := []*gtsmodel.Status{} - if err := p.db.GetWhere(ctx, []db.Where{{Key: "boost_of_id", Value: s.ID}}, &boosts); err != nil { - if !errors.Is(err, db.ErrNoEntries) { - // an actual error has occurred - l.Errorf("Delete: db error selecting boosts of status %s for account %s: %s", s.ID, account.Username, err) - continue - } - } - - for _, b := range boosts { - if b.Account == nil { - bAccount, err := p.db.GetAccountByID(ctx, b.AccountID) - if err != nil { - l.Errorf("Delete: db error populating boosted status account: %v", err) - continue + if boosts, err := p.db.GetStatusReblogs(ctx, s); err == nil { + for _, b := range boosts { + if b.Account == nil { + bAccount, err := p.db.GetAccountByID(ctx, b.AccountID) + if err != nil { + l.Errorf("Delete: db error populating boosted status account: %v", err) + continue + } + b.Account = bAccount } - b.Account = bAccount - } - - l.Debug("putting boost undo in the client api channel") - p.clientWorker.Queue(messages.FromClientAPI{ - APObjectType: ap.ActivityAnnounce, - APActivityType: ap.ActivityUndo, - GTSModel: s, - OriginAccount: b.Account, - TargetAccount: account, - }) - - if err := p.db.DeleteByID(ctx, b.ID, b); err != nil { - if err != db.ErrNoEntries { - // actual error has occurred - l.Errorf("Delete: db error deleting boost with id %s: %s", b.ID, err) - continue - } + l.Debug("putting boost undo in the client api channel") + p.clientWorker.Queue(messages.FromClientAPI{ + APObjectType: ap.ActivityAnnounce, + APActivityType: ap.ActivityUndo, + GTSModel: s, + OriginAccount: b.Account, + TargetAccount: account, + }) } } |