Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `Gemfile.lock`:
  Not a real conflict, upstream-updated dependency (redis) textually too
  close to glitch-soc-only dependecy.
  Updated redis gem like upstream did.
This commit is contained in:
Claire
2021-08-09 23:25:49 +02:00
37 changed files with 1609 additions and 199 deletions

View File

@@ -0,0 +1,27 @@
# frozen_string_literal: true
class AccountStatusesCleanupService < BaseService
# @param [AccountStatusesCleanupPolicy] account_policy
# @param [Integer] budget
# @return [Integer]
def call(account_policy, budget = 50)
return 0 unless account_policy.enabled?
cutoff_id = account_policy.compute_cutoff_id
return 0 if cutoff_id.blank?
num_deleted = 0
last_deleted = nil
account_policy.statuses_to_delete(budget, cutoff_id, account_policy.last_inspected).reorder(nil).find_each(order: :asc) do |status|
status.discard
RemovalWorker.perform_async(status.id, redraft: false)
num_deleted += 1
last_deleted = status.id
end
account_policy.record_last_inspected(last_deleted.presence || cutoff_id)
num_deleted
end
end

View File

@@ -4,6 +4,7 @@ class DeleteAccountService < BaseService
include Payloadable
ASSOCIATIONS_ON_SUSPEND = %w(
account_notes
account_pins
active_relationships
aliases
@@ -34,6 +35,7 @@ class DeleteAccountService < BaseService
# by foreign keys, making them safe to delete without loading
# into memory
ASSOCIATIONS_WITHOUT_SIDE_EFFECTS = %w(
account_notes
account_pins
aliases
conversation_mutes