glitch-soc/app/presenters/account_relationships_presenter.rb
David Yip c17c07158a
Introduce Glitch::AccountRelationships (#193)
Where possible, it is a good idea to add new backend code in ways that
will minimize conflict with upstream changes.  We can't do that
everywhere, but we can move our custom methods to a module that won't
be modified upstream, and that's a start.

This commit also gets the block/mute note maps into
REST::RelationshipSerializer under the "block_notes" and "mute_notes"
keys.
2018-01-27 01:23:14 -06:00

19 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class AccountRelationshipsPresenter
attr_reader :following, :followed_by, :blocking,
:muting, :requested, :domain_blocking,
:mute_notes, :block_notes
def initialize(account_ids, current_account_id, **options)
@following = Account.following_map(account_ids, current_account_id).merge(options[:following_map] || {})
@followed_by = Account.followed_by_map(account_ids, current_account_id).merge(options[:followed_by_map] || {})
@blocking = Account.blocking_map(account_ids, current_account_id).merge(options[:blocking_map] || {})
@muting = Account.muting_map(account_ids, current_account_id).merge(options[:muting_map] || {})
@requested = Account.requested_map(account_ids, current_account_id).merge(options[:requested_map] || {})
@domain_blocking = Account.domain_blocking_map(account_ids, current_account_id).merge(options[:domain_blocking_map] || {})
@mute_notes = Account.mute_note_map(account_ids, current_account_id).merge(options[:mute_note_map] || {})
@block_notes = Account.block_note_map(account_ids, current_account_id).merge(options[:block_note_map] || {})
end
end