parent
8cb4838fb1
commit
82a8026ba2
2 changed files with 18 additions and 3 deletions
|
@ -19,6 +19,9 @@ class RemoveStatusService < BaseService
|
||||||
@account = status.account
|
@account = status.account
|
||||||
@options = options
|
@options = options
|
||||||
|
|
||||||
|
@visibility = @status.visibility&.to_sym || :public
|
||||||
|
@searchability = @status.searchability&.to_sym || @status.compute_searchability&.to_sym || :public
|
||||||
|
|
||||||
with_redis_lock("distribute:#{@status.id}") do
|
with_redis_lock("distribute:#{@status.id}") do
|
||||||
@status.discard_with_reblogs
|
@status.discard_with_reblogs
|
||||||
|
|
||||||
|
@ -146,7 +149,7 @@ class RemoveStatusService < BaseService
|
||||||
featured_tag.decrement(@status.id)
|
featured_tag.decrement(@status.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
return unless %i(public public_unlisted login).include?(@status.visibility.to_sym) || (@status.unlisted_visibility? && %i(public public_unlisted).include?(@status.searchability.to_sym))
|
return unless %i(public public_unlisted login).include?(@visibility) || (@status.unlisted_visibility? && %i(public public_unlisted).include?(@searchability))
|
||||||
|
|
||||||
return if skip_streaming?
|
return if skip_streaming?
|
||||||
|
|
||||||
|
@ -157,7 +160,7 @@ class RemoveStatusService < BaseService
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_from_public
|
def remove_from_public
|
||||||
return unless %i(public public_unlisted login).include?(@status.visibility.to_sym)
|
return unless %i(public public_unlisted login).include?(@visibility)
|
||||||
|
|
||||||
return if skip_streaming?
|
return if skip_streaming?
|
||||||
|
|
||||||
|
@ -166,7 +169,7 @@ class RemoveStatusService < BaseService
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_from_media
|
def remove_from_media
|
||||||
return unless %i(public public_unlisted login).include?(@status.visibility.to_sym)
|
return unless %i(public public_unlisted login).include?(@visibility)
|
||||||
|
|
||||||
return if skip_streaming?
|
return if skip_streaming?
|
||||||
|
|
||||||
|
|
|
@ -83,6 +83,18 @@ RSpec.describe RemoveStatusService, :sidekiq_inline, type: :service do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when removed status is null-searchability' do
|
||||||
|
let(:status) { PostStatusService.new.call(alice, visibility: 'unlisted', text: 'Public post') }
|
||||||
|
|
||||||
|
before do
|
||||||
|
status.update!(searchability: nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'does not throw error' do
|
||||||
|
expect { subject.call(status) }.to_not raise_error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when removed status is limited' do
|
context 'when removed status is limited' do
|
||||||
let(:status) { PostStatusService.new.call(alice, visibility: 'mutual', text: 'limited post') }
|
let(:status) { PostStatusService.new.call(alice, visibility: 'mutual', text: 'limited post') }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue