about summary refs log tree commit diff
path: root/app/models/account_suggestions.rb
blob: 7fe9d618efb5a2ba200edb9f9107f017d2c3035f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# frozen_string_literal: true

class AccountSuggestions
  class Suggestion < ActiveModelSerializers::Model
    attributes :account, :source
  end

  def self.get(account, limit)
    suggestions = PotentialFriendshipTracker.get(account, limit).map { |target_account| Suggestion.new(account: target_account, source: :past_interaction) }
    suggestions.concat(FollowRecommendation.get(account, limit - suggestions.size, suggestions.map { |suggestion| suggestion.account.id }).map { |target_account| Suggestion.new(account: target_account, source: :global) }) if suggestions.size < limit
    suggestions
  end

  def self.remove(account, target_account_id)
    PotentialFriendshipTracker.remove(account.id, target_account_id)
  end
end