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'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#ssl_verifyObject

Returns the value of attribute ssl_verify.



13
14
15
# File 'lib/eac_rest/api.rb', line 13

def ssl_verify
  @ssl_verify
end

Instance Method Details

#build_service_url(suffix) ⇒ Addressable::URI

Returns:

  • (Addressable::URI)


42
43
44
45
46
47
48
49
50
51
52
# File 'lib/eac_rest/api.rb', line 42

def build_service_url(suffix)
  r = ::Addressable::URI.parse(suffix)
  return r if r.scheme.present?

  s = build_service_url_suffix(suffix)
  r = ::Addressable::URI.parse(root_url)
  r.path += s.path
  r.query_values = r.query_values(::Array).if_present([]) +
                   s.query_values(::Array).if_present([])
  r
end

#build_service_url_suffix(suffix) ⇒ Addressable::URI

Returns:

  • (Addressable::URI)


55
56
57
# File 'lib/eac_rest/api.rb', line 55

def build_service_url_suffix(suffix)
  ::Addressable::URI.parse(suffix)
end

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

Parameters:

  • entity_class (Class)
  • url_suffix (String)

Returns:



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

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



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

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



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

def request_json(service_url_suffix, headers = {}, &body_data_proc)
  request(service_url_suffix, headers.merge('Accept' => 'application/json')) 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:



60
61
62
# File 'lib/eac_rest/api.rb', line 60

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

#root_entity_classClass

Returns:

  • (Class)


65
66
67
# File 'lib/eac_rest/api.rb', line 65

def root_entity_class
  self.class.const_get(DEFAULT_ROOT_ENTITY_CLASS_NAME_SUFFIX)
end