summaryrefslogtreecommitdiff
path: root/app/finders/trending_projects_finder.rb
blob: a79bd47d9867de5379cd985b16cf3a0683e1fb74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class TrendingProjectsFinder
  def execute(current_user, start_date = nil)
    start_date ||= Date.today - 1.month

    projects = projects_for(current_user)

    # Determine trending projects based on comments count
    # for period of time - ex. month
    projects.joins(:notes).where('notes.created_at > ?', start_date).
      select("projects.*, count(notes.id) as ncount").
      group("projects.id").reorder("ncount DESC")
  end

  private

  def projects_for(current_user)
    ProjectsFinder.new.execute(current_user)
  end
end