Public profile endorsements (accounts picked by profile owner) (#8146)
This commit is contained in:
		@@ -2,7 +2,8 @@
 | 
			
		||||
 | 
			
		||||
class AccountRelationshipsPresenter
 | 
			
		||||
  attr_reader :following, :followed_by, :blocking,
 | 
			
		||||
              :muting, :requested, :domain_blocking
 | 
			
		||||
              :muting, :requested, :domain_blocking,
 | 
			
		||||
              :endorsed
 | 
			
		||||
 | 
			
		||||
  def initialize(account_ids, current_account_id, **options)
 | 
			
		||||
    @account_ids        = account_ids.map { |a| a.is_a?(Account) ? a.id : a }
 | 
			
		||||
@@ -14,6 +15,7 @@ class AccountRelationshipsPresenter
 | 
			
		||||
    @muting          = cached[:muting].merge(Account.muting_map(@uncached_account_ids, @current_account_id))
 | 
			
		||||
    @requested       = cached[:requested].merge(Account.requested_map(@uncached_account_ids, @current_account_id))
 | 
			
		||||
    @domain_blocking = cached[:domain_blocking].merge(Account.domain_blocking_map(@uncached_account_ids, @current_account_id))
 | 
			
		||||
    @endorsed        = cached[:endorsed].merge(Account.endorsed_map(@uncached_account_ids, @current_account_id))
 | 
			
		||||
 | 
			
		||||
    cache_uncached!
 | 
			
		||||
 | 
			
		||||
@@ -23,6 +25,7 @@ class AccountRelationshipsPresenter
 | 
			
		||||
    @muting.merge!(options[:muting_map] || {})
 | 
			
		||||
    @requested.merge!(options[:requested_map] || {})
 | 
			
		||||
    @domain_blocking.merge!(options[:domain_blocking_map] || {})
 | 
			
		||||
    @endorsed.merge!(options[:endorsed_map] || {})
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
@@ -37,6 +40,7 @@ class AccountRelationshipsPresenter
 | 
			
		||||
      muting: {},
 | 
			
		||||
      requested: {},
 | 
			
		||||
      domain_blocking: {},
 | 
			
		||||
      endorsed: {},
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @uncached_account_ids = []
 | 
			
		||||
@@ -63,6 +67,7 @@ class AccountRelationshipsPresenter
 | 
			
		||||
        muting:          { account_id => muting[account_id] },
 | 
			
		||||
        requested:       { account_id => requested[account_id] },
 | 
			
		||||
        domain_blocking: { account_id => domain_blocking[account_id] },
 | 
			
		||||
        endorsed:        { account_id => endorsed[account_id] },
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      Rails.cache.write("relationship:#{@current_account_id}:#{account_id}", maps_for_account, expires_in: 1.day)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user