diff options
Diffstat (limited to 'app/models/account_suggestions.rb')
-rw-r--r-- | app/models/account_suggestions.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/models/account_suggestions.rb b/app/models/account_suggestions.rb new file mode 100644 index 000000000..d1774e62f --- /dev/null +++ b/app/models/account_suggestions.rb @@ -0,0 +1,28 @@ +# 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 |