Add /api/v1/accounts/familiar_followers to REST API (#17700)
				
					
				
			* Add `/api/v1/accounts/familiar_followers` to REST API * Change hide network preference to be stored consistently for local and remote accounts * Add dummy classes to migration * Apply suggestions from code review Co-authored-by: Claire <claire.github-309c@sitedethib.com> Co-authored-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
		
							
								
								
									
										17
									
								
								app/presenters/familiar_followers_presenter.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								app/presenters/familiar_followers_presenter.rb
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
		Reference in New Issue
	
	Block a user