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