From c6f6f8ca0dd6bec3882b2a3114cce07e05c3d51a Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 11 Jun 2024 11:30:45 -0400 Subject: [PATCH] Move extra sql params to base class --- .../admin/metrics/measure/instance_accounts_measure.rb | 6 +----- .../admin/metrics/measure/instance_followers_measure.rb | 6 +----- app/lib/admin/metrics/measure/instance_follows_measure.rb | 6 +----- .../metrics/measure/instance_media_attachments_measure.rb | 6 +----- app/lib/admin/metrics/measure/instance_reports_measure.rb | 6 +----- .../admin/metrics/measure/instance_statuses_measure.rb | 6 +++--- app/lib/admin/metrics/measure/query_helper.rb | 8 ++++++++ app/lib/admin/metrics/measure/resolved_reports_measure.rb | 4 ---- app/lib/admin/metrics/measure/tag_servers_measure.rb | 4 ++-- 9 files changed, 18 insertions(+), 34 deletions(-) diff --git a/app/lib/admin/metrics/measure/instance_accounts_measure.rb b/app/lib/admin/metrics/measure/instance_accounts_measure.rb index 079df47df0..fdd0958014 100644 --- a/app/lib/admin/metrics/measure/instance_accounts_measure.rb +++ b/app/lib/admin/metrics/measure/instance_accounts_measure.rb @@ -27,14 +27,10 @@ class Admin::Metrics::Measure::InstanceAccountsMeasure < Admin::Metrics::Measure nil end - def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }] - end - def data_source_query Account .select(:id) - .where(account_domain_sql) + .where(account_domain_sql, domain: params[:domain]) .where(daily_period(:accounts)) end diff --git a/app/lib/admin/metrics/measure/instance_followers_measure.rb b/app/lib/admin/metrics/measure/instance_followers_measure.rb index ddc7a638d6..ae243b8f6f 100644 --- a/app/lib/admin/metrics/measure/instance_followers_measure.rb +++ b/app/lib/admin/metrics/measure/instance_followers_measure.rb @@ -27,15 +27,11 @@ class Admin::Metrics::Measure::InstanceFollowersMeasure < Admin::Metrics::Measur nil end - def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }] - end - def data_source_query Follow .select(:id) .joins(:account) - .where(account_domain_sql) + .where(account_domain_sql, domain: params[:domain]) .where(daily_period(:follows)) end diff --git a/app/lib/admin/metrics/measure/instance_follows_measure.rb b/app/lib/admin/metrics/measure/instance_follows_measure.rb index d331d6e789..2cc2e19c9e 100644 --- a/app/lib/admin/metrics/measure/instance_follows_measure.rb +++ b/app/lib/admin/metrics/measure/instance_follows_measure.rb @@ -27,15 +27,11 @@ class Admin::Metrics::Measure::InstanceFollowsMeasure < Admin::Metrics::Measure: nil end - def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }] - end - def data_source_query Follow .select(:id) .joins(:target_account) - .where(account_domain_sql) + .where(account_domain_sql, domain: params[:domain]) .where(daily_period(:follows)) end diff --git a/app/lib/admin/metrics/measure/instance_media_attachments_measure.rb b/app/lib/admin/metrics/measure/instance_media_attachments_measure.rb index f45238730a..8b57fca805 100644 --- a/app/lib/admin/metrics/measure/instance_media_attachments_measure.rb +++ b/app/lib/admin/metrics/measure/instance_media_attachments_measure.rb @@ -36,15 +36,11 @@ class Admin::Metrics::Measure::InstanceMediaAttachmentsMeasure < Admin::Metrics: nil end - def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }] - end - def data_source_query MediaAttachment .select('COALESCE(media_attachments.file_file_size, 0) + COALESCE(media_attachments.thumbnail_file_size, 0) AS size') .joins(:account) - .where(account_domain_sql) + .where(account_domain_sql, domain: params[:domain]) .where(daily_period(:media_attachments)) end diff --git a/app/lib/admin/metrics/measure/instance_reports_measure.rb b/app/lib/admin/metrics/measure/instance_reports_measure.rb index bc54a16d87..753e69b8f4 100644 --- a/app/lib/admin/metrics/measure/instance_reports_measure.rb +++ b/app/lib/admin/metrics/measure/instance_reports_measure.rb @@ -27,15 +27,11 @@ class Admin::Metrics::Measure::InstanceReportsMeasure < Admin::Metrics::Measure: nil end - def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }] - end - def data_source_query Report .select(:id) .joins(:target_account) - .where(account_domain_sql) + .where(account_domain_sql, domain: params[:domain]) .where(daily_period(:reports)) end diff --git a/app/lib/admin/metrics/measure/instance_statuses_measure.rb b/app/lib/admin/metrics/measure/instance_statuses_measure.rb index d22b877aa1..2c0c3769d3 100644 --- a/app/lib/admin/metrics/measure/instance_statuses_measure.rb +++ b/app/lib/admin/metrics/measure/instance_statuses_measure.rb @@ -27,15 +27,15 @@ class Admin::Metrics::Measure::InstanceStatusesMeasure < Admin::Metrics::Measure nil end - def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain], earliest_status_id: earliest_status_id, latest_status_id: latest_status_id }] + def extra_sql_params + { earliest_status_id: earliest_status_id, latest_status_id: latest_status_id } end def data_source_query Status .select(:id) .joins(:account) - .where(account_domain_sql) + .where(account_domain_sql, domain: params[:domain]) .where( <<~SQL.squish statuses.id BETWEEN :earliest_status_id AND :latest_status_id diff --git a/app/lib/admin/metrics/measure/query_helper.rb b/app/lib/admin/metrics/measure/query_helper.rb index 879d25cea7..83d0a6fc16 100644 --- a/app/lib/admin/metrics/measure/query_helper.rb +++ b/app/lib/admin/metrics/measure/query_helper.rb @@ -15,6 +15,14 @@ module Admin::Metrics::Measure::QueryHelper ActiveRecord::Base.sanitize_sql_array(sql_array) end + def sql_array + [sql_query_string, { start_at: @start_at, end_at: @end_at }.merge(extra_sql_params)] + end + + def extra_sql_params + {} + end + def sql_query_string <<~SQL.squish SELECT axis.*, ( diff --git a/app/lib/admin/metrics/measure/resolved_reports_measure.rb b/app/lib/admin/metrics/measure/resolved_reports_measure.rb index 27bf8c0833..5942dc7bcf 100644 --- a/app/lib/admin/metrics/measure/resolved_reports_measure.rb +++ b/app/lib/admin/metrics/measure/resolved_reports_measure.rb @@ -17,10 +17,6 @@ class Admin::Metrics::Measure::ResolvedReportsMeasure < Admin::Metrics::Measure: Report.resolved.where(action_taken_at: previous_time_period).count end - def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at }] - end - def data_source_query Report .select(:id) diff --git a/app/lib/admin/metrics/measure/tag_servers_measure.rb b/app/lib/admin/metrics/measure/tag_servers_measure.rb index 542b8a7d19..1789c6c42f 100644 --- a/app/lib/admin/metrics/measure/tag_servers_measure.rb +++ b/app/lib/admin/metrics/measure/tag_servers_measure.rb @@ -21,8 +21,8 @@ class Admin::Metrics::Measure::TagServersMeasure < Admin::Metrics::Measure::Base tag.statuses.where('statuses.id BETWEEN ? AND ?', Mastodon::Snowflake.id_at(@start_at - length_of_period, with_random: false), Mastodon::Snowflake.id_at(@end_at - length_of_period, with_random: false)).joins(:account).count('distinct accounts.domain') end - def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at, tag_id: tag.id, earliest_status_id: earliest_status_id, latest_status_id: latest_status_id }] + def extra_sql_params + { tag_id: tag.id, earliest_status_id: earliest_status_id, latest_status_id: latest_status_id } end def data_source_query