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.
18 lines
733 B
18 lines
733 B
4 years ago
|
# 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
|