diff options
author | 2022-09-21 19:55:52 +0200 | |
---|---|---|
committer | 2022-09-21 19:55:52 +0200 | |
commit | 4cf76a2bfcc2c19bdd34f1bd58d8545d3499481b (patch) | |
tree | 47f558153875675cd7e4d0109e1028d2101ff8da /internal/processing/fromcommon.go | |
parent | [docs] Add --config-path to example CLI commands where needed. (#843) (diff) | |
download | gotosocial-4cf76a2bfcc2c19bdd34f1bd58d8545d3499481b.tar.xz |
[chore] Tidy up status deletion, remove from cache too (#845)
* add func for deleting status from db + cache
* move deletes entirely back to processor
and also only do a delete if the requesting account owns the item being deleted
* tidy up unboost processing
* delete status more efficiently
* fix wrong account id on remote test attachments
* fix federator test
Diffstat (limited to 'internal/processing/fromcommon.go')
-rw-r--r-- | internal/processing/fromcommon.go | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/internal/processing/fromcommon.go b/internal/processing/fromcommon.go index fca23304c..3d8270e32 100644 --- a/internal/processing/fromcommon.go +++ b/internal/processing/fromcommon.go @@ -469,29 +469,27 @@ func (p *processor) wipeStatus(ctx context.Context, statusToDelete *gtsmodel.Sta } } - // delete all mentions for this status + // delete all mention entries generated by this status for _, m := range statusToDelete.MentionIDs { if err := p.db.DeleteByID(ctx, m, >smodel.Mention{}); err != nil { return err } } - // delete all notifications for this status + // delete all notification entries generated by this status if err := p.db.DeleteWhere(ctx, []db.Where{{Key: "status_id", Value: statusToDelete.ID}}, &[]*gtsmodel.Notification{}); err != nil { return err } // delete all boosts for this status + remove them from timelines - boosts, err := p.db.GetStatusReblogs(ctx, statusToDelete) - if err != nil { - return err - } - for _, b := range boosts { - if err := p.deleteStatusFromTimelines(ctx, b); err != nil { - return err - } - if err := p.db.DeleteByID(ctx, b.ID, b); err != nil { - return err + if boosts, err := p.db.GetStatusReblogs(ctx, statusToDelete); err == nil { + for _, b := range boosts { + if err := p.deleteStatusFromTimelines(ctx, b); err != nil { + return err + } + if err := p.db.DeleteStatusByID(ctx, b.ID); err != nil { + return err + } } } @@ -500,5 +498,10 @@ func (p *processor) wipeStatus(ctx context.Context, statusToDelete *gtsmodel.Sta return err } + // delete the status itself + if err := p.db.DeleteStatusByID(ctx, statusToDelete.ID); err != nil { + return err + } + return nil } |