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
]
ERROR_CODES =
[
  400, 401, 402, 403, 404, 500, 501, 502, 503
]
UNAUTHORIZED_CODES =
[
  400, 401, 402, 403
]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ Response

Returns a new instance of Response.



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

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

Instance Attribute Details

#bodyObject

Returns the value of attribute body.



6
7
8
# File 'lib/elmas/response.rb', line 6

def body
  @body
end

#responseObject

Returns the value of attribute response.



6
7
8
# File 'lib/elmas/response.rb', line 6

def response
  @response
end

#status_codeObject

Returns the value of attribute status_code.



6
7
8
# File 'lib/elmas/response.rb', line 6

def status_code
  @status_code
end

Instance Method Details

#error_messageObject



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

def error_message
  parsed.error_message
end

#fail?Boolean

Returns:

  • (Boolean)


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

def fail?
  ERROR_CODES.include? status
end

#log_errorObject



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

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



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

def parsed
  Parser.new(body)
end

#resultObject



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

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

#resultsObject



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

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

#statusObject



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

def status
  @response.status
end

#success?Boolean

Returns:

  • (Boolean)


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

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