diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2017-12-05 10:22:07 +0000 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2017-12-05 10:22:07 +0000 |
commit | c1390bd98ccb0368f700117097f47d6ff488fdba (patch) | |
tree | c4f383b778c8a3d33bdbb82d84c8fd7a91d3fbdf /lib/api/projects_relation_builder.rb | |
parent | e416d6ff1d020ec510ab71bfdbcfbc72b14cd44a (diff) | |
parent | 4ca4b0ff702a68a9aed5da70d9170da410eefafa (diff) | |
download | gitlab-ce-38869-templates.tar.gz |
Merge branch 'master' into 38869-templates38869-templates
* master: (50 commits)
remove ambiguity about which resource type to be using for new sessions
Backport changes from refactor sidebar weight block Vue and move to Issue Boards
Migrate Gitlab::Git::Repository#cherry_pick to Gitaly
show status of issue links in wiki page
issue note component rename
Prevent job link form rendering when user does not have permissions
Move SingleRepositoryWorker#fsck into Gitlab::Git::Repository
Import axios utils in commons
Update parser gem to remove warning about wrong ruby version
Merge branch 'master-i18n' into 'master'
Reduce pipeline chain life span to minimize side effects
Add CHANGELOG entry
Refactor GCP Client#user_agent_header to use #tap
Remove seed file from the development env
Fixed bug
Fix watch level for mentions in description
Add notice to gollum initializer
Add underline hover state to all links
Moving query to base count service
Added default order to UserFinder
...
Diffstat (limited to 'lib/api/projects_relation_builder.rb')
-rw-r--r-- | lib/api/projects_relation_builder.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/api/projects_relation_builder.rb b/lib/api/projects_relation_builder.rb new file mode 100644 index 00000000000..6482fd94ab8 --- /dev/null +++ b/lib/api/projects_relation_builder.rb @@ -0,0 +1,34 @@ +module API + module ProjectsRelationBuilder + extend ActiveSupport::Concern + + module ClassMethods + def prepare_relation(projects_relation, options = {}) + projects_relation = preload_relation(projects_relation, options) + execute_batch_counting(projects_relation) + projects_relation + end + + def preload_relation(projects_relation, options = {}) + projects_relation + end + + def forks_counting_projects(projects_relation) + projects_relation + end + + def batch_forks_counting(projects_relation) + ::Projects::BatchForksCountService.new(forks_counting_projects(projects_relation)).refresh_cache + end + + def batch_open_issues_counting(projects_relation) + ::Projects::BatchOpenIssuesCountService.new(projects_relation).refresh_cache + end + + def execute_batch_counting(projects_relation) + batch_forks_counting(projects_relation) + batch_open_issues_counting(projects_relation) + end + end + end +end |