You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
713 B
28 lines
713 B
# frozen_string_literal: true |
|
|
|
class AccountSuggestions |
|
SOURCES = [ |
|
AccountSuggestions::SettingSource, |
|
AccountSuggestions::PastInteractionsSource, |
|
AccountSuggestions::GlobalSource, |
|
].freeze |
|
|
|
def self.get(account, limit) |
|
SOURCES.each_with_object([]) do |source_class, suggestions| |
|
source_suggestions = source_class.new.get( |
|
account, |
|
skip_account_ids: suggestions.map(&:account_id), |
|
limit: limit - suggestions.size |
|
) |
|
|
|
suggestions.concat(source_suggestions) |
|
end |
|
end |
|
|
|
def self.remove(account, target_account_id) |
|
SOURCES.each do |source_class| |
|
source = source_class.new |
|
source.remove(account, target_account_id) |
|
end |
|
end |
|
end
|
|
|