Class: ThreeScale::Core::UsageLimit
Constant Summary
collapse
- PERIODS =
[:eternity, :year, :month, :week, :day, :hour, :minute].freeze
Class Method Summary
collapse
#initialize
included
included
#attributes, #dirty?, included, #update_attributes
Class Method Details
.delete(service_id, plan_id, metric_id, period) ⇒ Object
34
35
36
|
# File 'lib/3scale/core/usage_limit.rb', line 34
def self.delete(service_id, plan_id, metric_id, period)
api_delete({}, uri: base_uri(service_id, plan_id, metric_id, period))
end
|
.load_value(service_id, plan_id, metric_id, period) ⇒ Object
15
16
17
18
|
# File 'lib/3scale/core/usage_limit.rb', line 15
def self.load_value(service_id, plan_id, metric_id, period)
obj = api_read({}, uri: base_uri(service_id, plan_id, metric_id, period))
obj and obj.public_send(period).to_i
end
|
.save(attributes) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/3scale/core/usage_limit.rb', line 20
def self.save(attributes)
periodlst = PERIODS & attributes.keys
raise UsageLimitInvalidPeriods.new(periodlst) unless periodlst.one?
service_id, plan_id, metric_id = attributes.fetch(:service_id), attributes.fetch(:plan_id), attributes.fetch(:metric_id)
period = periodlst.shift
value = attributes[period]
fixed_fields = { service_id: service_id, plan_id: plan_id, metric_id: metric_id }.freeze
api_update(fixed_fields.merge({period => value}), uri: base_uri(service_id, plan_id, metric_id, period))
end
|