Move extra sql params to base class

pull/30654/head
Matt Jankowski 2024-06-11 11:30:45 -04:00
parent d804aace1a
commit c6f6f8ca0d
9 changed files with 18 additions and 34 deletions

View File

@ -27,14 +27,10 @@ class Admin::Metrics::Measure::InstanceAccountsMeasure < Admin::Metrics::Measure
nil nil
end end
def sql_array
[sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }]
end
def data_source_query def data_source_query
Account Account
.select(:id) .select(:id)
.where(account_domain_sql) .where(account_domain_sql, domain: params[:domain])
.where(daily_period(:accounts)) .where(daily_period(:accounts))
end end

View File

@ -27,15 +27,11 @@ class Admin::Metrics::Measure::InstanceFollowersMeasure < Admin::Metrics::Measur
nil nil
end end
def sql_array
[sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }]
end
def data_source_query def data_source_query
Follow Follow
.select(:id) .select(:id)
.joins(:account) .joins(:account)
.where(account_domain_sql) .where(account_domain_sql, domain: params[:domain])
.where(daily_period(:follows)) .where(daily_period(:follows))
end end

View File

@ -27,15 +27,11 @@ class Admin::Metrics::Measure::InstanceFollowsMeasure < Admin::Metrics::Measure:
nil nil
end end
def sql_array
[sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }]
end
def data_source_query def data_source_query
Follow Follow
.select(:id) .select(:id)
.joins(:target_account) .joins(:target_account)
.where(account_domain_sql) .where(account_domain_sql, domain: params[:domain])
.where(daily_period(:follows)) .where(daily_period(:follows))
end end

View File

@ -36,15 +36,11 @@ class Admin::Metrics::Measure::InstanceMediaAttachmentsMeasure < Admin::Metrics:
nil nil
end end
def sql_array
[sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }]
end
def data_source_query def data_source_query
MediaAttachment MediaAttachment
.select('COALESCE(media_attachments.file_file_size, 0) + COALESCE(media_attachments.thumbnail_file_size, 0) AS size') .select('COALESCE(media_attachments.file_file_size, 0) + COALESCE(media_attachments.thumbnail_file_size, 0) AS size')
.joins(:account) .joins(:account)
.where(account_domain_sql) .where(account_domain_sql, domain: params[:domain])
.where(daily_period(:media_attachments)) .where(daily_period(:media_attachments))
end end

View File

@ -27,15 +27,11 @@ class Admin::Metrics::Measure::InstanceReportsMeasure < Admin::Metrics::Measure:
nil nil
end end
def sql_array
[sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain] }]
end
def data_source_query def data_source_query
Report Report
.select(:id) .select(:id)
.joins(:target_account) .joins(:target_account)
.where(account_domain_sql) .where(account_domain_sql, domain: params[:domain])
.where(daily_period(:reports)) .where(daily_period(:reports))
end end

View File

@ -27,15 +27,15 @@ class Admin::Metrics::Measure::InstanceStatusesMeasure < Admin::Metrics::Measure
nil nil
end end
def sql_array def extra_sql_params
[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 }] { earliest_status_id: earliest_status_id, latest_status_id: latest_status_id }
end end
def data_source_query def data_source_query
Status Status
.select(:id) .select(:id)
.joins(:account) .joins(:account)
.where(account_domain_sql) .where(account_domain_sql, domain: params[:domain])
.where( .where(
<<~SQL.squish <<~SQL.squish
statuses.id BETWEEN :earliest_status_id AND :latest_status_id statuses.id BETWEEN :earliest_status_id AND :latest_status_id

View File

@ -15,6 +15,14 @@ module Admin::Metrics::Measure::QueryHelper
ActiveRecord::Base.sanitize_sql_array(sql_array) ActiveRecord::Base.sanitize_sql_array(sql_array)
end 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 def sql_query_string
<<~SQL.squish <<~SQL.squish
SELECT axis.*, ( SELECT axis.*, (

View File

@ -17,10 +17,6 @@ class Admin::Metrics::Measure::ResolvedReportsMeasure < Admin::Metrics::Measure:
Report.resolved.where(action_taken_at: previous_time_period).count Report.resolved.where(action_taken_at: previous_time_period).count
end end
def sql_array
[sql_query_string, { start_at: @start_at, end_at: @end_at }]
end
def data_source_query def data_source_query
Report Report
.select(:id) .select(:id)

View File

@ -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') 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 end
def sql_array def extra_sql_params
[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 }] { tag_id: tag.id, earliest_status_id: earliest_status_id, latest_status_id: latest_status_id }
end end
def data_source_query def data_source_query