class Hula::ServiceBroker::HttpJsonClient

Attributes

http_proxy[R]

Public Class Methods

new(http_proxy: HttpProxyNull.new) click to toggle source
# File lib/hula/service_broker/http_json_client.rb, line 28
def initialize(http_proxy: HttpProxyNull.new)
  @http_proxy = http_proxy
end

Public Instance Methods

delete(uri, auth: nil, headers: nil, params: nil) click to toggle source
# File lib/hula/service_broker/http_json_client.rb, line 57
def delete(uri, auth: nil, headers: nil, params: nil)
  request = Net::HTTP::Delete.new(uri)
  request.basic_auth auth.fetch(:username), auth.fetch(:password) unless auth.nil?
  if not headers.nil?
    headers.each do |key, value|
      request.add_field(key, value)
    end
  end
  send_request(request)
end
get(uri, auth: nil, headers: nil) click to toggle source
# File lib/hula/service_broker/http_json_client.rb, line 32
def get(uri, auth: nil, headers: nil)
  request = Net::HTTP::Get.new(uri)
  request.basic_auth auth.fetch(:username), auth.fetch(:password) unless auth.nil?

  if not headers.nil?
    headers.each do |key, value|
      request.add_field(key, value)
    end
  end

  send_request(request)
end
put(uri, body: nil, auth: nil, headers: nil) click to toggle source
# File lib/hula/service_broker/http_json_client.rb, line 45
def put(uri, body: nil, auth: nil, headers: nil)
  request = Net::HTTP::Put.new(uri)
  request.body = JSON.generate(body) if body
  request.basic_auth auth.fetch(:username), auth.fetch(:password) unless auth.nil?
  if not headers.nil?
    headers.each do |key, value|
      request.add_field(key, value)
    end
  end
  send_request(request)
end

Private Instance Methods

handle(response) click to toggle source
# File lib/hula/service_broker/http_json_client.rb, line 92
def handle(response)
  unless response.is_a?(Net::HTTPSuccess)
    fail HTTPError, [
      response.uri.to_s,
      response.code,
      response.body
    ].join("\n\n")
  end

  JSON.parse(response.body, symbolize_names: true)
rescue JSON::ParserError => e
  raise JsonParseError, e
end
make_request(host, port, scheme, request) click to toggle source
# File lib/hula/service_broker/http_json_client.rb, line 77
def make_request(host, port, scheme, request)
  response = Net::HTTP.start(
    host,
    port,
    http_proxy.http_host,
    http_proxy.http_port,
    use_ssl: scheme == 'https',
    verify_mode: OpenSSL::SSL::VERIFY_NONE
  ) { |http| http.request(request) }

  handle(response)
rescue Timeout::Error => e
  raise TimeoutError, e
end
send_request(request) click to toggle source
# File lib/hula/service_broker/http_json_client.rb, line 72
def send_request(request)
  uri = request.uri
  make_request(uri.hostname, uri.port, uri.scheme, request)
end