Class: API::Entities::ProjectDetails
- Inherits:
-
BasicProjectDetails
- Object
- Grape::Entity
- ProjectIdentity
- BasicProjectDetails
- API::Entities::ProjectDetails
- Defined in:
- lib/api/entities/project_details.rb
Direct Known Subclasses
Class Method Summary collapse
-
.execute_batch_counting(projects_relation) ⇒ Object
rubocop: enable CodeReuse/ActiveRecord.
-
.preload_relation(projects_relation, _options = {}) ⇒ Object
rubocop: disable CodeReuse/ActiveRecord.
- .repositories_for_preload(projects_relation) ⇒ Object
Methods inherited from BasicProjectDetails
Methods included from ProjectsRelationBuilder
#execute_batch_counting, #preload_groups, #preload_member_roles, #preload_relation, #preload_repository_cache, #prepare_relation, #projects_for_group_preload, #repositories_for_preload
Class Method Details
.execute_batch_counting(projects_relation) ⇒ Object
rubocop: enable CodeReuse/ActiveRecord
20 21 22 23 24 25 26 |
# File 'lib/api/entities/project_details.rb', line 20 def self.execute_batch_counting(projects_relation) # Call the count methods on every project, so the BatchLoader would load them all at # once when the entities are rendered projects_relation.filter_map(&:forked_from_project).each(&:forks_count) super end |
.preload_relation(projects_relation, _options = {}) ⇒ Object
rubocop: disable CodeReuse/ActiveRecord
11 12 13 14 15 16 17 |
# File 'lib/api/entities/project_details.rb', line 11 def self.preload_relation(projects_relation, = {}) super(projects_relation).preload( project_group_links: { group: :route }, fork_network: :root_project, fork_network_member: :forked_from_project, forked_from_project: [:route, :topics, :group, :project_feature, { namespace: [:route, :owner] }]) end |
.repositories_for_preload(projects_relation) ⇒ Object
28 29 30 |
# File 'lib/api/entities/project_details.rb', line 28 def self.repositories_for_preload(projects_relation) super + projects_relation.filter_map(&:forked_from_project).map(&:repository) end |