summaryrefslogtreecommitdiff
path: root/internal/processing/fromcommon.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2022-09-21 19:55:52 +0200
committerLibravatar GitHub <noreply@github.com>2022-09-21 19:55:52 +0200
commit4cf76a2bfcc2c19bdd34f1bd58d8545d3499481b (patch)
tree47f558153875675cd7e4d0109e1028d2101ff8da /internal/processing/fromcommon.go
parent[docs] Add --config-path to example CLI commands where needed. (#843) (diff)
downloadgotosocial-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.go27
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, &gtsmodel.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
}