Class: Datadog::CI::Transport::Adapters::Net::Response

Inherits:
Object
  • Object
show all
Includes:
Datadog::Core::Transport::Response
Defined in:
lib/datadog/ci/transport/adapters/net.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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_responseObject (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

Returns:

  • (Boolean)


100
101
102
# File 'lib/datadog/ci/transport/adapters/net.rb', line 100

def client_error?
  code.between?(400, 499)
end

#codeObject



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

Returns:

  • (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

Returns:

  • (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

#inspectObject



122
123
124
# File 'lib/datadog/ci/transport/adapters/net.rb', line 122

def inspect
  "#{super}, http_response:#{http_response}"
end

#not_found?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/datadog/ci/transport/adapters/net.rb', line 96

def not_found?
  code == 404
end

#ok?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/datadog/ci/transport/adapters/net.rb', line 88

def ok?
  code.between?(200, 299)
end

#payloadObject



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

Returns:

  • (Boolean)


104
105
106
# File 'lib/datadog/ci/transport/adapters/net.rb', line 104

def server_error?
  code.between?(500, 599)
end

#unsupported?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/datadog/ci/transport/adapters/net.rb', line 92

def unsupported?
  code == 415
end