Class: Truework::APIResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/truework/api_response.rb

Direct Known Subclasses

ListResponse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url, status_code, http_body: '', api_version: nil, **_params) ⇒ APIResponse

Returns a new instance of APIResponse.



10
11
12
13
14
15
# File 'lib/truework/api_response.rb', line 10

def initialize(url, status_code, http_body: '', api_version: nil, **_params)
  @url = url
  @status_code = status_code
  @body = http_body
  @api_version = api_version
end

Instance Attribute Details

#api_versionObject (readonly)

Returns the value of attribute api_version.



8
9
10
# File 'lib/truework/api_response.rb', line 8

def api_version
  @api_version
end

#bodyObject (readonly)

Returns the value of attribute body.



7
8
9
# File 'lib/truework/api_response.rb', line 7

def body
  @body
end

#status_codeObject (readonly)

Returns the value of attribute status_code.



6
7
8
# File 'lib/truework/api_response.rb', line 6

def status_code
  @status_code
end

#urlObject (readonly)

Returns the value of attribute url.



5
6
7
# File 'lib/truework/api_response.rb', line 5

def url
  @url
end

Class Method Details

.extract_version(response) ⇒ Object



17
18
19
# File 'lib/truework/api_response.rb', line 17

def self.extract_version(response)
  response.each_header.to_h['version']
end

.from_response(response) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/truework/api_response.rb', line 21

def self.from_response(response)
  new(
    response.uri,
    response.code.to_i,
    http_body: response.body,
    api_version: extract_version(response)
  )
end

Instance Method Details

#jsonObject



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

def json
  @json ||= JSON.parse(@body, symbolize_names: true) if @body && @body.strip != ''
end