Class: Sofia::Response

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status:, headers:, raw_body:, request:) ⇒ Response

: (status: Integer, headers: Hash[String, String], raw_body: String?, request: Sofia::Request) -> void



20
21
22
23
24
25
# File 'lib/sofia/response.rb', line 20

def initialize(status:, headers:, raw_body:, request:)
  @status  = status
  @headers = headers
  @raw_body = raw_body
  @request = request
end

Instance Attribute Details

#headersObject (readonly)

: Hash[String, String]



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

def headers
  @headers
end

#raw_bodyObject (readonly)

: String?



14
15
16
# File 'lib/sofia/response.rb', line 14

def raw_body
  @raw_body
end

#requestObject (readonly)

: Sofia::Request



17
18
19
# File 'lib/sofia/response.rb', line 17

def request
  @request
end

#statusObject (readonly)

: Integer



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

def status
  @status
end

Instance Method Details

#bodyObject

: -> JSONValue?



38
39
40
41
42
43
44
45
# File 'lib/sofia/response.rb', line 38

def body
  body = raw_body
  return unless body

  JSON.parse(body)
rescue JSON::ParserError
  raise Sofia::Error::InvalidJSON
end

#client_error?Boolean

: -> bool

Returns:

  • (Boolean)


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

def client_error?
  (400..499).include?(@status)
end

#failure?Boolean

: -> bool

Returns:

  • (Boolean)


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

def failure?
  !success?
end

#server_error?Boolean

: -> bool

Returns:

  • (Boolean)


53
54
55
# File 'lib/sofia/response.rb', line 53

def server_error?
  (500..599).include?(@status)
end

#success?Boolean

: -> bool

Returns:

  • (Boolean)


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

def success?
  (200..299).include?(@status)
end