From 0a8aa07078d64943af0512f6afd9aaf25257f79b Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Thu, 12 Dec 2024 15:10:26 +0100 Subject: [PATCH] integrate reports --- .../action/create_posts_count_report.rb | 23 ------------------- .../rewind/action/posting_calendar.rb | 10 +++----- .../rewind/action/reading_time.rb | 15 ++++-------- app/services/discourse_rewind/rewind/fetch.rb | 5 +++- 4 files changed, 12 insertions(+), 41 deletions(-) delete mode 100644 app/services/discourse_rewind/rewind/action/create_posts_count_report.rb diff --git a/app/services/discourse_rewind/rewind/action/create_posts_count_report.rb b/app/services/discourse_rewind/rewind/action/create_posts_count_report.rb deleted file mode 100644 index 9b62c83..0000000 --- a/app/services/discourse_rewind/rewind/action/create_posts_count_report.rb +++ /dev/null @@ -1,23 +0,0 @@ -# frozen_string_literal: true - -module DiscourseRewind - class Rewind::Action::CreatePostsCountReport < Service::ActionBase - option :params - option :guardian - option :date - option :user - - delegate :username, :year, to: :params, private: true - - def call - p date - p user - p guardian - p username - p year - p params - - { data: { count: 5 }, identifier: "posts-count-report" } - end - end -end diff --git a/app/services/discourse_rewind/rewind/action/posting_calendar.rb b/app/services/discourse_rewind/rewind/action/posting_calendar.rb index 7ee7bb0..2439995 100644 --- a/app/services/discourse_rewind/rewind/action/posting_calendar.rb +++ b/app/services/discourse_rewind/rewind/action/posting_calendar.rb @@ -4,18 +4,14 @@ # https://docs.github.com/assets/cb-35216/mw-1440/images/help/profile/contributions-graph.webp module DiscourseRewind class Rewind::Action::PostingCalendar < Service::ActionBase - option :params - option :guardian - - delegate :username, :year, to: :params, private: true + option :user + option :date def call - user = User.find_by_username(username) - calendar = Post .where(user: user) - .where(created_at: Date.new(year).all_year) + .where(created_at: date) .select("DATE(created_at) as date, count(*) as count") .group("DATE(created_at)") .order("DATE(created_at)") diff --git a/app/services/discourse_rewind/rewind/action/reading_time.rb b/app/services/discourse_rewind/rewind/action/reading_time.rb index 479c738..787c59c 100644 --- a/app/services/discourse_rewind/rewind/action/reading_time.rb +++ b/app/services/discourse_rewind/rewind/action/reading_time.rb @@ -3,24 +3,19 @@ # For showcasing the reading time of a user # Should we show book covers or just the names? module DiscourseRewind - class Rewind::Action::PostingCalendar < Service::ActionBase - option :params - option :guardian - - delegate :username, :year, to: :params, private: true + class Rewind::Action::ReadingTime < Service::ActionBase + option :user + option :date def call - user = User.find_by_username(username) - - reading_time = - UserVisit.where(user: user).where(visited_at: Date.new(year).all_year).sum(:time_read) + reading_time = UserVisit.where(user: user).where(visited_at: date).sum(:time_read) { data: { reading_time: reading_time, books: best_book_fit(reading_time), }, - identifier: "posting-calendar", + identifier: "reading-time", } end diff --git a/app/services/discourse_rewind/rewind/fetch.rb b/app/services/discourse_rewind/rewind/fetch.rb index 90d86b6..0c48e90 100644 --- a/app/services/discourse_rewind/rewind/fetch.rb +++ b/app/services/discourse_rewind/rewind/fetch.rb @@ -23,7 +23,10 @@ module DiscourseRewind # @return [Service::Base::Context] # order matters, rewinds are displayed in the order they are defined - REPORTS = [DiscourseRewind::Rewind::Action::CreatePostsCountReport] + REPORTS = [ + DiscourseRewind::Rewind::Action::ReadingTime, + DiscourseRewind::Rewind::Action::PostingCalendar, + ].freeze CACHE_DURATION = 5.minutes