2017-01-23 20:29:34 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class UnmergeWorker
|
|
|
|
include Sidekiq::Worker
|
2023-07-12 15:06:00 +00:00
|
|
|
include DatabaseHelper
|
2017-01-23 20:29:34 +00:00
|
|
|
|
2017-04-03 22:53:20 +00:00
|
|
|
sidekiq_options queue: 'pull'
|
|
|
|
|
2024-11-19 10:04:12 +00:00
|
|
|
def perform(from_account_id, into_id, type = 'home')
|
2023-07-12 15:06:00 +00:00
|
|
|
with_primary do
|
2023-07-10 01:06:09 +00:00
|
|
|
@from_account = Account.find(from_account_id)
|
2024-11-19 10:04:12 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
case type
|
|
|
|
when 'home'
|
|
|
|
unmerge_from_home!(into_id)
|
|
|
|
when 'list'
|
|
|
|
unmerge_from_list!(into_id)
|
|
|
|
end
|
|
|
|
rescue ActiveRecord::RecordNotFound
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def unmerge_from_home!(into_account_id)
|
|
|
|
with_primary do
|
2023-07-10 01:06:09 +00:00
|
|
|
@into_account = Account.find(into_account_id)
|
|
|
|
end
|
|
|
|
|
2023-07-12 15:06:00 +00:00
|
|
|
with_read_replica do
|
2023-07-10 01:06:09 +00:00
|
|
|
FeedManager.instance.unmerge_from_home(@from_account, @into_account)
|
|
|
|
end
|
2024-11-19 10:04:12 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def unmerge_from_list!(into_list_id)
|
|
|
|
with_primary do
|
|
|
|
@into_list = List.find(into_list_id)
|
|
|
|
end
|
|
|
|
|
|
|
|
with_read_replica do
|
|
|
|
FeedManager.instance.unmerge_from_list(@from_account, @into_list)
|
|
|
|
end
|
2017-01-23 20:29:34 +00:00
|
|
|
end
|
|
|
|
end
|