class ThreeScaleToolbox::Commands::PlansCommand::Export::ReadPlanMetrics

Public Instance Methods

call() click to toggle source

Compute unique list of metrics limits and pricingrules

# File lib/3scale_toolbox/commands/plans_command/export/read_plan_metrics_step.rb, line 9
def call
  all_metrics = [
    limit_metrics,
    pricingrule_metrics
  ]
  result[:plan_metrics] = all_metrics.each_with_object({}) { |elem, acc| acc.merge!(elem) }
end

Private Instance Methods

filtered_limit_metrics() click to toggle source
# File lib/3scale_toolbox/commands/plans_command/export/read_plan_metrics_step.rb, line 28
def filtered_limit_metrics
  result[:limits].select { |limit| limit.dig('metric', 'type') == 'metric' }
end
filtered_pricing_rule_metrics() click to toggle source
# File lib/3scale_toolbox/commands/plans_command/export/read_plan_metrics_step.rb, line 40
def filtered_pricing_rule_metrics
  result[:pricingrules].select { |limit| limit.dig('metric', 'type') == 'metric' }
end
limit_metrics() click to toggle source
# File lib/3scale_toolbox/commands/plans_command/export/read_plan_metrics_step.rb, line 19
def limit_metrics
  # multiple limits can reference the same metric
  filtered_limit_metrics.each_with_object({}) do |elem, acc|
    # find_metric should not return nil.
    # It is assumed that metric_id refers to existing element from previous steps
    acc[elem['metric_id']] = find_metric(elem['metric_id']).attrs
  end
end
pricingrule_metrics() click to toggle source
# File lib/3scale_toolbox/commands/plans_command/export/read_plan_metrics_step.rb, line 32
def pricingrule_metrics
  filtered_pricing_rule_metrics.each_with_object({}) do |elem, acc|
    # find_metric should not return nil.
    # It is assumed that metric_id refers to existing element from previous steps
    acc[elem['metric_id']] = find_metric(elem['metric_id']).attrs
  end
end