Class: Basecamp::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/basecamp/http.rb

Overview

Wraps an HTTP response.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(body:, status:, headers:) ⇒ Response

Returns a new instance of Response.



607
608
609
610
611
# File 'lib/basecamp/http.rb', line 607

def initialize(body:, status:, headers:)
  @body = body
  @status = status
  @headers = headers
end

Instance Attribute Details

#bodyString (readonly)

Returns response body.

Returns:

  • (String)

    response body



599
600
601
# File 'lib/basecamp/http.rb', line 599

def body
  @body
end

#headersHash (readonly)

Returns response headers.

Returns:

  • (Hash)

    response headers



605
606
607
# File 'lib/basecamp/http.rb', line 605

def headers
  @headers
end

#statusInteger (readonly)

Returns HTTP status code.

Returns:

  • (Integer)

    HTTP status code



602
603
604
# File 'lib/basecamp/http.rb', line 602

def status
  @status
end

Instance Method Details

#jsonHash, Array

Parses the response body as JSON, normalizing Person-shaped objects.

Returns:

  • (Hash, Array)


615
616
617
618
619
620
621
622
# File 'lib/basecamp/http.rb', line 615

def json
  @json ||= begin
    Security.check_body_size!(@body, Security::MAX_RESPONSE_BODY_BYTES)
    result = JSON.parse(@body)
    Http.normalize_person_ids(result)
    result
  end
end

#success?Boolean

Returns whether the response was successful (2xx).

Returns:

  • (Boolean)


626
627
628
# File 'lib/basecamp/http.rb', line 626

def success?
  status >= 200 && status < 300
end