Class: Datadog::CI::Transport::Adapters::Net::Response
- Inherits:
-
Object
- Object
- Datadog::CI::Transport::Adapters::Net::Response
- Includes:
- Datadog::Core::Transport::Response
- Defined in:
- lib/datadog/ci/transport/adapters/net.rb
Instance Attribute Summary collapse
-
#http_response ⇒ Object
readonly
Returns the value of attribute http_response.
Instance Method Summary collapse
- #client_error? ⇒ Boolean
- #code ⇒ Object
- #gzipped_body?(body) ⇒ Boolean
- #gzipped_content? ⇒ Boolean
- #header(name) ⇒ Object
-
#initialize(http_response) ⇒ Response
constructor
A new instance of Response.
- #inspect ⇒ Object
- #not_found? ⇒ Boolean
- #ok? ⇒ Boolean
- #payload ⇒ Object
- #server_error? ⇒ Boolean
- #unsupported? ⇒ Boolean
Constructor Details
#initialize(http_response) ⇒ Response
Returns a new instance of Response.
67 68 69 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 67 def initialize(http_response) @http_response = http_response end |
Instance Attribute Details
#http_response ⇒ Object (readonly)
Returns the value of attribute http_response.
65 66 67 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 65 def http_response @http_response end |
Instance Method Details
#client_error? ⇒ Boolean
100 101 102 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 100 def client_error? code.between?(400, 499) end |
#code ⇒ Object
84 85 86 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 84 def code http_response.code.to_i end |
#gzipped_body?(body) ⇒ Boolean
112 113 114 115 116 117 118 119 120 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 112 def gzipped_body?(body) return false if body.nil? || body.empty? # no-dd-sa first_bytes = body[0, 2] return false if first_bytes.nil? || first_bytes.empty? first_bytes.b == Ext::Transport::GZIP_MAGIC_NUMBER end |
#gzipped_content? ⇒ Boolean
108 109 110 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 108 def gzipped_content? header(Ext::Transport::HEADER_CONTENT_ENCODING) == Ext::Transport::CONTENT_ENCODING_GZIP end |
#header(name) ⇒ Object
80 81 82 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 80 def header(name) http_response[name] end |
#inspect ⇒ Object
122 123 124 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 122 def inspect "#{super}, http_response:#{http_response}" end |
#not_found? ⇒ Boolean
96 97 98 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 96 def not_found? code == 404 end |
#ok? ⇒ Boolean
88 89 90 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 88 def ok? code.between?(200, 299) end |
#payload ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 71 def payload return @decompressed_payload if defined?(@decompressed_payload) return http_response.body unless gzipped_content? return http_response.body unless gzipped_body?(http_response.body) Datadog.logger.debug("Decompressing gzipped response payload") @decompressed_payload = Gzip.decompress(http_response.body) end |
#server_error? ⇒ Boolean
104 105 106 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 104 def server_error? code.between?(500, 599) end |
#unsupported? ⇒ Boolean
92 93 94 |
# File 'lib/datadog/ci/transport/adapters/net.rb', line 92 def unsupported? code == 415 end |