Class: ThreeScale::Core::Service

Inherits:
APIClient::Resource show all
Defined in:
lib/3scale/core/service.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from APIClient::Operations

included

Methods included from APIClient::Support

included

Methods included from APIClient::Attributes

#attributes, #dirty?, included, #update_attributes

Constructor Details

#initialize(attributes = {}) ⇒ Service

Returns a new instance of Service.



70
71
72
73
# File 'lib/3scale/core/service.rb', line 70

def initialize(attributes = {})
  @state = :active
  super(attributes)
end

Class Method Details

.change_provider_key!(old_key, new_key) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/3scale/core/service.rb', line 25

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) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/3scale/core/service.rb', line 12

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) ⇒ Object

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



46
47
48
# File 'lib/3scale/core/service.rb', line 46

def delete_stats(service_id, _delete_job)
  api_delete({}, uri: "#{service_uri(service_id)}/stats", prefix: '')
end

.load_by_id(service_id) ⇒ Object



8
9
10
# File 'lib/3scale/core/service.rb', line 8

def load_by_id(service_id)
  api_read({}, uri: service_uri(service_id), rprefix: :service)
end

.make_default(service_id) ⇒ Object



39
40
41
# File 'lib/3scale/core/service.rb', line 39

def make_default(service_id)
  save! id: service_id, default_service: true
end

.save!(attributes) ⇒ Object



20
21
22
23
# File 'lib/3scale/core/service.rb', line 20

def save!(attributes)
  id = attributes.fetch(:id)
  api_update(attributes, uri: service_uri(id))
end

Instance Method Details

#activateObject



75
76
77
# File 'lib/3scale/core/service.rb', line 75

def activate
  self.state = :active
end

#active?Boolean

Returns:

  • (Boolean)


87
88
89
# File 'lib/3scale/core/service.rb', line 87

def active?
  state == :active
end

#deactivateObject



79
80
81
# File 'lib/3scale/core/service.rb', line 79

def deactivate
  self.state = :suspended
end

#referrer_filters_required?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/3scale/core/service.rb', line 83

def referrer_filters_required?
  @referrer_filters_required
end

#save!Object



91
92
93
# File 'lib/3scale/core/service.rb', line 91

def save!
  self.class.save! attributes
end