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:
27
app/services/account_statuses_cleanup_service.rb
Normal file
27
app/services/account_statuses_cleanup_service.rb
Normal 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
|
@@ -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
|
||||
|
Reference in New Issue
Block a user