gitlab-org--gitlab-foss/app/finders
Sean McGivern e7817fc1e0 Remove issuable finder count caching
We're going to cache the total open count separately, and then just perform
these counts on the list. We already do that to get the pagination information,
through Kaminari, and a future change will make Kaminari reuse the query results
from earlier in the request.
2017-08-31 12:21:39 +01:00
..
admin Add an option to list only archived projects 2017-08-24 10:11:07 +02:00
concerns move CreatedAtFilter to concerns folder 2017-07-07 19:01:49 +02:00
access_requests_finder.rb
branches_finder.rb
contributed_projects_finder.rb
environments_finder.rb
events_finder.rb Enable Style/DotPosition Rubocop 👮 2017-06-21 13:48:12 +00:00
group_finder.rb
group_members_finder.rb Enable Style/DotPosition Rubocop 👮 2017-06-21 13:48:12 +00:00
group_projects_finder.rb
groups_finder.rb Refactor complicated API group finding rules into GroupsFinder 2017-08-24 11:33:09 +01:00
issuable_finder.rb Remove issuable finder count caching 2017-08-31 12:21:39 +01:00
issues_finder.rb Remove issuable finder count caching 2017-08-31 12:21:39 +01:00
joined_groups_finder.rb
labels_finder.rb Hide archived project labels from group issue tracker 2017-06-30 16:22:00 -03:00
members_finder.rb
merge_requests_finder.rb Add top-level /merge_requests API endpoint 2017-07-27 23:34:57 +02:00
milestones_finder.rb fix milestones finder failing spec 2017-07-07 19:21:00 -03:00
move_to_project_finder.rb
notes_finder.rb
personal_access_tokens_finder.rb
personal_projects_finder.rb
pipeline_schedules_finder.rb
pipelines_finder.rb
projects_finder.rb Add an option to list only archived projects 2017-08-24 10:11:07 +02:00
README.md
snippets_finder.rb
tags_finder.rb
todos_finder.rb Add workaround for UPDATE with subquery when using MySQL 2017-08-03 16:31:05 +02:00
union_finder.rb
users_finder.rb refactor created at filter to use model scopes 2017-07-07 18:31:50 +02:00

Finders

This type of classes responsible for collection items based on different conditions. To prevent lookup methods in models like this:

class Project
  def issues_for_user_filtered_by(user, filter)
    # A lot of logic not related to project model itself
  end
end

issues = project.issues_for_user_filtered_by(user, params)

Better use this:

issues = IssuesFinder.new(project, user, filter).execute

It will help keep models thiner.