12345678910111213141516171819202122232425262728293031323334 |
- # frozen_string_literal: true
- class AccountSuggestions::Source
- def key
- raise NotImplementedError
- end
- def get(_account, **kwargs)
- raise NotImplementedError
- end
- def remove(_account, target_account_id)
- raise NotImplementedError
- end
- protected
- def as_ordered_suggestions(scope, ordered_list)
- return [] if ordered_list.empty?
- map = scope.index_by { |account| to_ordered_list_key(account) }
- ordered_list.filter_map { |ordered_list_key| map[ordered_list_key] }.map do |account|
- AccountSuggestions::Suggestion.new(
- account: account,
- source: key
- )
- end
- end
- def to_ordered_list_key(_account)
- raise NotImplementedError
- end
- end
|