mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-22 18:45:41 +01:00
Move account sensitize-related methods to concern (#28865)
This commit is contained in:
parent
d033920b7e
commit
c78dc23b49
3 changed files with 40 additions and 13 deletions
|
@ -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
|
Loading…
Reference in a new issue