1234567891011121314151617181920212223242526272829 |
- # frozen_string_literal: true
- class RemoveAccountsFromListService < BaseService
- def call(list, accounts)
- @list = list
- @accounts = accounts
- return if @accounts.empty?
- unmerge_from_list!
- update_list!
- end
- private
- def update_list!
- ListAccount.where(list: @list, account: @accounts).destroy_all
- end
- def unmerge_from_list!
- UnmergeWorker.push_bulk(unmerge_account_ids) do |account_id|
- [account_id, @list.id, 'list']
- end
- end
- def unmerge_account_ids
- ListAccount.where(list: @list, account: @accounts).where.not(follow_id: nil).pluck(:account_id)
- end
- end
|