Module: DomoscioAdmin

Defined in:
lib/domoscio_admin.rb,
lib/domoscio_admin/json.rb,
lib/domoscio_admin/errors.rb,
lib/domoscio_admin/version.rb,
lib/domoscio_admin/http_calls.rb,
lib/domoscio_admin/resources/resource.rb,
lib/domoscio_admin/authorization_token.rb,
lib/domoscio_admin/resources/users/user.rb,
lib/domoscio_admin/resources/resource_user.rb,
lib/domoscio_admin/resources/resource_instance.rb,
lib/domoscio_admin/generators/install_generator.rb,
lib/domoscio_admin/resources/instances/instance_user.rb,
lib/domoscio_admin/resources/instances/instance_parameter.rb

Defined Under Namespace

Modules: AuthorizationToken, HTTPCalls, JSON Classes: Configuration, Error, InstallGenerator, InstanceParameter, InstanceUser, ProcessingError, Resource, ResourceInstance, ResourceUser, ResponseError, User

Constant Summary collapse

VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



30
31
32
# File 'lib/domoscio_admin.rb', line 30

def configuration
  @configuration
end

Class Method Details

.api_uri(url = '') ⇒ Object



38
39
40
# File 'lib/domoscio_admin.rb', line 38

def self.api_uri(url = '')
  URI(configuration.root_url + url)
end

.configure {|configuration| ... } ⇒ Object

Yields:



33
34
35
36
# File 'lib/domoscio_admin.rb', line 33

def self.configure
  self.configuration ||= Configuration.new
  yield configuration
end

.request(method, url, params = {}) ⇒ Object

  • method: HTTP method; lowercase symbol, e.g. :get, :post etc.

  • url: the part after Configuration#root_url

  • params: hash; entity data for creation, update etc.; will dump it by JSON and assign to Net::HTTPRequest#body

Performs HTTP requests to Adaptive Engine On token issues, will try once to get a new token then will output a DomoscioAdmin::ReponseError with details

Raises DomoscioAdmin::ResponseError on Adaptive Error Status Raises DomoscioAdmin::ProcessingError on Internal Error



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/domoscio_admin.rb', line 53

def self.request(method, url, params = {})
  store_tokens, headers = request_headers
  uri = api_uri(url)

  response = DomoscioAdmin.send_request(uri, method, params, headers)
  return response if response.kind_of? DomoscioAdmin::ProcessingError

  begin
    raise_http_failure(uri, response, params)
    data = DomoscioAdmin::JSON.load(response.body.nil? ? '' : response.body)
    DomoscioAdmin::AuthorizationToken::Manager.storage.store({ access_token: response['Accesstoken'], refresh_token: response['Refreshtoken'] }) if store_tokens
  rescue MultiJson::LoadError => exception
    data = ProcessingError.new(uri, 500, exception, response.body, params)
  rescue ResponseError => exception
    data = exception
  end

  data
end