Move account sensitize-related methods to concern (#28865)
This commit is contained in:
		@@ -90,6 +90,7 @@ class Account < ApplicationRecord
 | 
			
		||||
  include Account::Interactions
 | 
			
		||||
  include Account::Merging
 | 
			
		||||
  include Account::Search
 | 
			
		||||
  include Account::Sensitizes
 | 
			
		||||
  include Account::Silences
 | 
			
		||||
  include Account::StatusesSearch
 | 
			
		||||
  include Account::Suspensions
 | 
			
		||||
@@ -130,7 +131,6 @@ class Account < ApplicationRecord
 | 
			
		||||
  scope :remote, -> { where.not(domain: nil) }
 | 
			
		||||
  scope :local, -> { where(domain: nil) }
 | 
			
		||||
  scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
 | 
			
		||||
  scope :sensitized, -> { where.not(sensitized_at: nil) }
 | 
			
		||||
  scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) }
 | 
			
		||||
  scope :recent, -> { reorder(id: :desc) }
 | 
			
		||||
  scope :bots, -> { where(actor_type: AUTOMATED_ACTOR_TYPES) }
 | 
			
		||||
@@ -243,18 +243,6 @@ class Account < ApplicationRecord
 | 
			
		||||
    ResolveAccountService.new.call(acct) unless local?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def sensitized?
 | 
			
		||||
    sensitized_at.present?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def sensitize!(date = Time.now.utc)
 | 
			
		||||
    update!(sensitized_at: date)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def unsensitize!
 | 
			
		||||
    update!(sensitized_at: nil)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def memorialize!
 | 
			
		||||
    update!(memorial: true)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								app/models/concerns/account/sensitizes.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								app/models/concerns/account/sensitizes.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
module Account::Sensitizes
 | 
			
		||||
  extend ActiveSupport::Concern
 | 
			
		||||
 | 
			
		||||
  included do
 | 
			
		||||
    scope :sensitized, -> { where.not(sensitized_at: nil) }
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def sensitized?
 | 
			
		||||
    sensitized_at.present?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def sensitize!(date = Time.now.utc)
 | 
			
		||||
    update!(sensitized_at: date)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def unsensitize!
 | 
			
		||||
    update!(sensitized_at: nil)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										18
									
								
								spec/models/concerns/account/sensitizes_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								spec/models/concerns/account/sensitizes_spec.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe Account::Sensitizes do
 | 
			
		||||
  describe 'Scopes' do
 | 
			
		||||
    describe '.sensitized' do
 | 
			
		||||
      let(:sensitized_account) { Fabricate :account, sensitized_at: 2.days.ago }
 | 
			
		||||
 | 
			
		||||
      before { Fabricate :account, sensitized_at: false }
 | 
			
		||||
 | 
			
		||||
      it 'returns an array of accounts who are sensitized' do
 | 
			
		||||
        expect(Account.sensitized)
 | 
			
		||||
          .to contain_exactly(sensitized_account)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user