Class: Hackle::HTTP

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

Class Method Summary collapse

Class Method Details

.check_successful(status_code:) ⇒ Object



31
32
33
34
35
# File 'lib/hackle/http/http.rb', line 31

def self.check_successful(status_code:)
  unless successful?(status_code: status_code)
    raise UnexpectedResponseError, "HTTP status code #{status_code}"
  end
end

.client(base_uri:) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/hackle/http/http.rb', line 10

def self.client(base_uri:)
  uri = URI.parse(base_uri)
  client = Net::HTTP.new(uri.host, uri.port)
  client.use_ssl = uri.scheme == 'https'
  client.open_timeout = 5
  client.read_timeout = 10
  client
end

.sdk_headers(sdk_info:) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/hackle/http/http.rb', line 19

def self.sdk_headers(sdk_info:)
  {
    'X-HACKLE-SDK-KEY' => sdk_info.key,
    'X-HACKLE-SDK-NAME' => sdk_info.name,
    'X-HACKLE-SDK-VERSION' => sdk_info.version
  }
end

.successful?(status_code:) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/hackle/http/http.rb', line 27

def self.successful?(status_code:)
  status_code >= 200 && status_code < 300
end