class ThreeScale::Core::UsageLimit
Constants
- PERIODS
Public Class Methods
delete(service_id, plan_id, metric_id, period)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/3scale/core/usage_limit.rb, line 20 def self.save(attributes) # save currently DOES NOT support multiple periods at the same time, # since it would mean multiple API calls per call to this method. 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
Private Class Methods
base_uri(service_id, plan_id, metric_id, period)
click to toggle source
# File lib/3scale/core/usage_limit.rb, line 10 def self.base_uri(service_id, plan_id, metric_id, period) "#{default_uri}#{service_id}/plans/#{plan_id}/usagelimits/#{metric_id}/#{period}" end