diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-05-07 19:51:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-07 19:51:00 +0200 |
commit | 50f8ee2e07e0a8a0ab8971543cb6544c8d6c5f5d (patch) | |
tree | 2d0f4954a3077e3e0bb2d02f671af41b69672e2a /app/models/account_suggestions/source.rb | |
parent | a346912030012dc1451249373ff7ef1a61016517 (diff) | |
parent | e08b31a70624fe069d2f26bf2078a69e2d48f6aa (diff) |
Merge pull request #1526 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/models/account_suggestions/source.rb')
-rw-r--r-- | app/models/account_suggestions/source.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/models/account_suggestions/source.rb b/app/models/account_suggestions/source.rb new file mode 100644 index 000000000..bd1068d20 --- /dev/null +++ b/app/models/account_suggestions/source.rb @@ -0,0 +1,34 @@ +# 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(&method(:to_ordered_list_key)) + + ordered_list.map { |ordered_list_key| map[ordered_list_key] }.compact.map do |account| + AccountSuggestions::Suggestion.new( + account: account, + source: key + ) + end + end + + def to_ordered_list_key(_account) + raise NotImplementedError + end +end |