Fix/remove calling private method with send in model (#22951)
* fix(status): remove send usage for private unlink_from_conversations - make unlink_from_conversations public method - rename unlink_from_conversations to unlink_from_conversations! - fix send call on private method in statuses_vacuum and batched_remove_status_service * fix(feeds_vacuum): replace find_in_batches with in_batches because active record query results should be a little more efficient than itterating with map and each. Postgres can grasp such lists of ids much quicker than ruby can. Will probably make allmost no difference, but cannot hurt either.
This commit is contained in:
parent
a65f86ae55
commit
ae62e5fa53
4 changed files with 20 additions and 25 deletions
|
@ -29,7 +29,7 @@
|
|||
#
|
||||
|
||||
class Status < ApplicationRecord
|
||||
before_destroy :unlink_from_conversations
|
||||
before_destroy :unlink_from_conversations!
|
||||
|
||||
include Discard::Model
|
||||
include Paginable
|
||||
|
@ -309,14 +309,14 @@ class Status < ApplicationRecord
|
|||
after_create_commit :store_uri, if: :local?
|
||||
after_create_commit :update_statistics, if: :local?
|
||||
|
||||
around_create Mastodon::Snowflake::Callbacks
|
||||
|
||||
before_validation :prepare_contents, if: :local?
|
||||
before_validation :set_reblog
|
||||
before_validation :set_visibility
|
||||
before_validation :set_conversation
|
||||
before_validation :set_local
|
||||
|
||||
around_create Mastodon::Snowflake::Callbacks
|
||||
|
||||
after_create :set_poll_id
|
||||
|
||||
class << self
|
||||
|
@ -447,6 +447,17 @@ class Status < ApplicationRecord
|
|||
update_attribute(:deleted_at, discard_time)
|
||||
end
|
||||
|
||||
def unlink_from_conversations!
|
||||
return unless direct_visibility?
|
||||
|
||||
inbox_owners = mentioned_accounts.local
|
||||
inbox_owners += [account] if account.local?
|
||||
|
||||
inbox_owners.each do |inbox_owner|
|
||||
AccountConversation.remove_status(inbox_owner, self)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def update_status_stat!(attrs)
|
||||
|
@ -524,15 +535,4 @@ class Status < ApplicationRecord
|
|||
reblog&.decrement_count!(:reblogs_count) if reblog?
|
||||
thread&.decrement_count!(:replies_count) if in_reply_to_id.present? && distributable?
|
||||
end
|
||||
|
||||
def unlink_from_conversations
|
||||
return unless direct_visibility?
|
||||
|
||||
inbox_owners = mentioned_accounts.local
|
||||
inbox_owners += [account] if account.local?
|
||||
|
||||
inbox_owners.each do |inbox_owner|
|
||||
AccountConversation.remove_status(inbox_owner, self)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue