Class: EacRest::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_rest/api.rb

Overview

Abstract methods

  • self.issue_get_url_suffix(provider_issue_id)

Constant Summary collapse

DEFAULT_ROOT_ENTITY_CLASS_NAME_SUFFIX =
'Root'
JSON_REQUEST_HEADERS =
{ 'Accept' => 'application/json' }.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#ssl_verifyObject

Returns the value of attribute ssl_verify.



11
12
13
# File 'lib/eac_rest/api.rb', line 11

def ssl_verify
  @ssl_verify
end

Instance Method Details

#build_service_url(suffix) ⇒ Addressable::URI

Returns:

  • (Addressable::URI)


41
42
43
# File 'lib/eac_rest/api.rb', line 41

def build_service_url(suffix)
  ::EacRest::Helper.url_join(root_url, suffix)
end

#entity(entity_class, data_or_id, options = {}) ⇒ EacRest::Entity

Parameters:

  • entity_class (Class)
  • url_suffix (String)

Returns:



20
21
22
# File 'lib/eac_rest/api.rb', line 20

def entity(entity_class, data_or_id, options = {})
  entity_class.new(self, data_or_id, options)
end

#request(service_url_suffix, headers = {}, &body_data_proc) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/eac_rest/api.rb', line 24

def request(service_url_suffix, headers = {}, &body_data_proc)
  r = ::EacRest::Request.new(build_service_url(service_url_suffix),
                             body_data_proc).ssl_verify(ssl_verify)
  headers.each { |name, value| r = r.header(name, value) }
  r = r.autenticate(username, password) if username.present?
  r
end

#request_json(service_url_suffix, headers = {}, &body_data_proc) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/eac_rest/api.rb', line 32

def request_json(service_url_suffix, headers = {}, &body_data_proc)
  request(service_url_suffix, headers.merge(JSON_REQUEST_HEADERS)) do |body_data|
    r = body_data.is_a?(::Enumerable) ? body_data : ::JSON.parse(body_data)
    r = body_data_proc.call(r) if body_data_proc
    r
  end
end

#root_entityEacRest::Entity

Returns:



46
47
48
# File 'lib/eac_rest/api.rb', line 46

def root_entity
  @root_entity ||= root_entity_class.new(self, nil)
end

#root_entity_classClass

Returns:

  • (Class)


51
52
53
# File 'lib/eac_rest/api.rb', line 51

def root_entity_class
  self.class.const_get(DEFAULT_ROOT_ENTITY_CLASS_NAME_SUFFIX)
end