diff options
Diffstat (limited to 'app/finders')
-rw-r--r-- | app/finders/trending_projects_finder.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/app/finders/trending_projects_finder.rb b/app/finders/trending_projects_finder.rb new file mode 100644 index 00000000000..32d7968924a --- /dev/null +++ b/app/finders/trending_projects_finder.rb @@ -0,0 +1,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").order("ncount DESC") + end + + private + + def projects_for(current_user) + ProjectsFinder.new.execute(current_user) + end +end |