123456789101112131415161718192021222324252627282930313233 |
- # frozen_string_literal: true
- class AddAccountsToListService < BaseService
- def call(list, accounts)
- @list = list
- @accounts = accounts
- return if @accounts.empty?
- update_list!
- merge_into_list!
- end
- private
- def update_list!
- ApplicationRecord.transaction do
- @accounts.each do |account|
- @list.accounts << account
- end
- end
- end
- def merge_into_list!
- MergeWorker.push_bulk(merge_account_ids) do |account_id|
- [account_id, @list.id, 'list']
- end
- end
- def merge_account_ids
- ListAccount.where(list: @list, account: @accounts).where.not(follow_id: nil).pluck(:account_id)
- end
- end
|