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.
28 lines
1.3 KiB
28 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
|