Class: Elmas::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/elmas/response.rb

Direct Known Subclasses

OauthResponse

Constant Summary collapse

SUCCESS_CODES =
[
  201, 202, 203, 204, 301, 302, 303, 304
].freeze
ERROR_CODES =
[
  400, 401, 402, 403, 404, 500, 501, 502, 503
].freeze
UNAUTHORIZED_CODES =
[
  400, 401, 402, 403
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ Response

Returns a new instance of Response.



11
12
13
14
# File 'lib/elmas/response.rb', line 11

def initialize(response)
  @response = response
  raise_and_log_error if fail?
end

Instance Attribute Details

#bodyObject



20
21
22
# File 'lib/elmas/response.rb', line 20

def body
  @response.body
end

#responseObject

Returns the value of attribute response.



8
9
10
# File 'lib/elmas/response.rb', line 8

def response
  @response
end

#status_codeObject

Returns the value of attribute status_code.



8
9
10
# File 'lib/elmas/response.rb', line 8

def status_code
  @status_code
end

Instance Method Details

#error_messageObject



44
45
46
# File 'lib/elmas/response.rb', line 44

def error_message
  parsed.error_message
end

#fail?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/elmas/response.rb', line 40

def fail?
  ERROR_CODES.include? status
end

#log_errorObject



48
49
50
51
# File 'lib/elmas/response.rb', line 48

def log_error
  message = "An error occured, the response had status #{status}. The content of the error was: #{error_message}"
  Elmas.error(message)
end

#parsedObject



24
25
26
# File 'lib/elmas/response.rb', line 24

def parsed
  Parser.new(body)
end

#resultObject



28
29
30
# File 'lib/elmas/response.rb', line 28

def result
  Elmas::ResultSet.new(parsed)
end

#resultsObject



32
33
34
# File 'lib/elmas/response.rb', line 32

def results
  Elmas::ResultSet.new(parsed)
end

#statusObject



36
37
38
# File 'lib/elmas/response.rb', line 36

def status
  @response.status
end

#success?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/elmas/response.rb', line 16

def success?
  @response.success? || SUCCESS_CODES.include?(status)
end