Class: API::Entities::ProjectWithAccess

Inherits:
Project show all
Defined in:
lib/api/entities/project_with_access.rb

Class Method Summary collapse

Methods inherited from Project

execute_batch_counting, preload_resource

Methods included from Helpers::RelatedResourcesHelpers

#expose_path, #expose_url, #issues_available?, #mrs_available?, #project_feature_string_access_level

Methods inherited from ProjectDetails

execute_batch_counting, repositories_for_preload

Methods inherited from BasicProjectDetails

execute_batch_counting

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

.postload_relation(projects_relation, options = {}) ⇒ Object

rubocop: disable CodeReuse/ActiveRecord



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/api/entities/project_with_access.rb', line 31

def self.postload_relation(projects_relation, options = {})
  options[:project_members] = options[:current_user]
    .project_members
    .where(source_id: projects_relation.subquery(:id))
    .preload(:source, user: [notification_settings: :source])

  project_group_ids = projects_relation.subquery(:namespace_id)
  options[:group_members] = ::GroupMember
    .max_access_members(project_group_ids, options[:current_user])
    .preload(:source, user: [notification_settings: :source])
end

.preload_relation(projects_relation, options = {}) ⇒ Object



26
27
28
# File 'lib/api/entities/project_with_access.rb', line 26

def self.preload_relation(projects_relation, options = {})
  super(projects_relation, options)
end