36 lines
		
	
	
		
			1015 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1015 B
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module API
 | |
|   module ProjectsRelationBuilder
 | |
|     extend ActiveSupport::Concern
 | |
| 
 | |
|     class_methods do
 | |
|       def prepare_relation(projects_relation, options = {})
 | |
|         projects_relation = preload_relation(projects_relation, options)
 | |
|         execute_batch_counting(projects_relation)
 | |
|         # Call the forks count method on every project, so the BatchLoader would load them all at
 | |
|         # once when the entities are rendered
 | |
|         projects_relation.each(&:forks_count)
 | |
| 
 | |
|         projects_relation
 | |
|       end
 | |
| 
 | |
|       def preload_relation(projects_relation, options = {})
 | |
|         projects_relation
 | |
|       end
 | |
| 
 | |
|       def forks_counting_projects(projects_relation)
 | |
|         projects_relation
 | |
|       end
 | |
| 
 | |
|       def batch_open_issues_counting(projects_relation)
 | |
|         ::Projects::BatchOpenIssuesCountService.new(projects_relation).refresh_cache
 | |
|       end
 | |
| 
 | |
|       def execute_batch_counting(projects_relation)
 | |
|         batch_open_issues_counting(projects_relation)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |