Class: ThreeScaleToolbox::Entities::PricingRule
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#metric_system_name, #to_cr
Constructor Details
#initialize(id:, plan:, metric_id:, attrs:) ⇒ PricingRule
Returns a new instance of PricingRule.
19
20
21
22
23
24
25
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 19
def initialize(id:, plan:, metric_id:, attrs:)
@id = id.to_i
@plan = plan
@remote = plan.remote
@metric_id = metric_id
@attrs = attrs
end
|
Instance Attribute Details
#attrs ⇒ Object
Returns the value of attribute attrs.
17
18
19
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 17
def attrs
@attrs
end
|
#id ⇒ Object
Returns the value of attribute id.
17
18
19
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 17
def id
@id
end
|
#metric_id ⇒ Object
Returns the value of attribute metric_id.
17
18
19
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 17
def metric_id
@metric_id
end
|
#plan ⇒ Object
Returns the value of attribute plan.
17
18
19
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 17
def plan
@plan
end
|
#remote ⇒ Object
Returns the value of attribute remote.
17
18
19
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 17
def remote
@remote
end
|
Class Method Details
.create(plan:, metric_id:, attrs:) ⇒ Object
7
8
9
10
11
12
13
14
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 7
def create(plan:, metric_id:, attrs:)
resp_attrs = plan.remote.create_pricingrule plan.id, metric_id, attrs
if (errors = resp_attrs['errors'])
raise ThreeScaleToolbox::ThreeScaleApiError.new('Pricing rule has not been created', errors)
end
new(id: resp_attrs.fetch('id'), plan: plan, metric_id: metric_id, attrs: resp_attrs)
end
|
Instance Method Details
#cost_per_unit ⇒ Object
27
28
29
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 27
def cost_per_unit
attrs['cost_per_unit'].to_f
end
|
#delete ⇒ Object
47
48
49
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 47
def delete
remote.delete_application_plan_pricingrule plan.id, metric_id, id
end
|
#links ⇒ Object
39
40
41
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 39
def links
attrs['links'] || []
end
|
#max ⇒ Object
35
36
37
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 35
def max
attrs['max']
end
|
#metric_link ⇒ Object
43
44
45
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 43
def metric_link
links.find { |link| link['rel'] == 'metric' }
end
|
#min ⇒ Object
31
32
33
|
# File 'lib/3scale_toolbox/entities/pricing_rule.rb', line 31
def min
attrs['min']
end
|