diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-03-08 22:40:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-08 22:40:21 +0100 |
commit | 02133866e6915e37431298b396e1aded1e4c44c5 (patch) | |
tree | 4ec43c5d1269ef7d5a3816a4d000bb7129bf81bd /app/presenters | |
parent | f03148f441d8dfc1856451c4faa00b5e26b6e199 (diff) | |
parent | 481f7c8c3850a5d38e92222ab14e5229c49c2812 (diff) |
Merge pull request #1713 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/presenters')
-rw-r--r-- | app/presenters/familiar_followers_presenter.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/app/presenters/familiar_followers_presenter.rb b/app/presenters/familiar_followers_presenter.rb new file mode 100644 index 000000000..c1d944b80 --- /dev/null +++ b/app/presenters/familiar_followers_presenter.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class FamiliarFollowersPresenter + class Result < ActiveModelSerializers::Model + attributes :id, :accounts + end + + def initialize(accounts, current_account_id) + @accounts = accounts + @current_account_id = current_account_id + end + + def accounts + map = Follow.includes(account: :account_stat).where(target_account_id: @accounts.map(&:id)).where(account_id: Follow.where(account_id: @current_account_id).joins(:target_account).merge(Account.where(hide_collections: [nil, false])).select(:target_account_id)).group_by(&:target_account_id) + @accounts.map { |account| Result.new(id: account.id, accounts: (account.hide_collections? ? [] : (map[account.id] || [])).map(&:account)) } + end +end |