class ThreeScale::Core::Service

Public Class Methods

change_provider_key!(old_key, new_key) click to toggle source
# File lib/3scale/core/service.rb, line 26
def change_provider_key!(old_key, new_key)
  ret = api_do_put({ new_key: new_key },
                   uri: "#{default_uri}change_provider_key/#{old_key}",
                   prefix: '') do |result|
    if result[:response].status == 400
      exception = provider_key_exception(
          result[:response_json][:error], old_key, new_key)
      raise exception if exception
    end
    true
  end
  ret[:ok]
end
delete_by_id!(service_id) click to toggle source
# File lib/3scale/core/service.rb, line 13
def delete_by_id!(service_id)
  api_delete({}, uri: service_uri(service_id)) do |result|
    if result[:response].status == 400
      raise ServiceIsDefaultService, service_id
    end
  end
end
delete_stats(service_id, _delete_job) click to toggle source

Deletes all the stats for the given service. Note: delete_job is no longer needed. It's kept to avoid breaking compatibility.

# File lib/3scale/core/service.rb, line 47
def delete_stats(service_id, _delete_job)
  api_delete({}, uri: "#{service_uri(service_id)}/stats", prefix: '')
end
load_by_id(service_id) click to toggle source
# File lib/3scale/core/service.rb, line 9
def load_by_id(service_id)
  api_read({}, uri: service_uri(service_id), rprefix: :service)
end
make_default(service_id) click to toggle source
# File lib/3scale/core/service.rb, line 40
def make_default(service_id)
  save! id: service_id, default_service: true
end
new(attributes = {}) click to toggle source
# File lib/3scale/core/service.rb, line 71
def initialize(attributes = {})
  @state = :active
  super(attributes)
end
save!(attributes) click to toggle source
# File lib/3scale/core/service.rb, line 21
def save!(attributes)
  id = attributes.fetch(:id)
  api_update(attributes, uri: service_uri(id))
end

Private Class Methods

provider_key_exception(error, old_key, new_key) click to toggle source
# File lib/3scale/core/service.rb, line 57
def provider_key_exception(error, old_key, new_key)
  case error
  when /does not exist/
    ProviderKeyNotFound.new old_key
  when /already exists/
    ProviderKeyExists.new new_key
  when /are not valid/
    InvalidProviderKeys.new
  else
    nil
  end
end
service_uri(id) click to toggle source
# File lib/3scale/core/service.rb, line 53
def service_uri(id)
  "#{default_uri}#{id}"
end

Public Instance Methods

activate() click to toggle source
# File lib/3scale/core/service.rb, line 76
def activate
  self.state = :active
end
active?() click to toggle source
# File lib/3scale/core/service.rb, line 92
def active?
  state == :active
end
deactivate() click to toggle source
# File lib/3scale/core/service.rb, line 80
def deactivate
  self.state = :suspended
end
referrer_filters_required?() click to toggle source
# File lib/3scale/core/service.rb, line 84
def referrer_filters_required?
  @referrer_filters_required
end
save!() click to toggle source
# File lib/3scale/core/service.rb, line 96
def save!
  self.class.save! attributes
end
user_registration_required?() click to toggle source
# File lib/3scale/core/service.rb, line 88
def user_registration_required?
  @user_registration_required
end

Private Instance Methods

state=(value) click to toggle source
# File lib/3scale/core/service.rb, line 102
def state=(value)
  # only :active or nil will be considered as :active
  @state = value.nil? || value.to_sym == :active ? :active : :suspended
end