You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
1.3 KiB
27 lines
1.3 KiB
# frozen_string_literal: true |
|
|
|
class Admin::Metrics::Measure |
|
MEASURES = { |
|
active_users: Admin::Metrics::Measure::ActiveUsersMeasure, |
|
new_users: Admin::Metrics::Measure::NewUsersMeasure, |
|
interactions: Admin::Metrics::Measure::InteractionsMeasure, |
|
opened_reports: Admin::Metrics::Measure::OpenedReportsMeasure, |
|
resolved_reports: Admin::Metrics::Measure::ResolvedReportsMeasure, |
|
tag_accounts: Admin::Metrics::Measure::TagAccountsMeasure, |
|
tag_uses: Admin::Metrics::Measure::TagUsesMeasure, |
|
tag_servers: Admin::Metrics::Measure::TagServersMeasure, |
|
instance_accounts: Admin::Metrics::Measure::InstanceAccountsMeasure, |
|
instance_media_attachments: Admin::Metrics::Measure::InstanceMediaAttachmentsMeasure, |
|
instance_reports: Admin::Metrics::Measure::InstanceReportsMeasure, |
|
instance_statuses: Admin::Metrics::Measure::InstanceStatusesMeasure, |
|
instance_follows: Admin::Metrics::Measure::InstanceFollowsMeasure, |
|
instance_followers: Admin::Metrics::Measure::InstanceFollowersMeasure, |
|
}.freeze |
|
|
|
def self.retrieve(measure_keys, start_at, end_at, params) |
|
Array(measure_keys).map do |key| |
|
klass = MEASURES[key.to_sym] |
|
klass&.new(start_at, end_at, klass.with_params? ? params.require(key.to_sym) : nil) |
|
end.compact |
|
end |
|
end
|
|
|