From 49b7392c35c7c9b6543a0f095784d32be92206ee Mon Sep 17 00:00:00 2001 From: Sean Porter Date: Sun, 9 Oct 2011 10:00:44 -0700 Subject: [PATCH] move http params to http_request helper, dry --- lib/redphone/helpers.rb | 14 ++++++++++---- lib/redphone/loggly.rb | 9 ++++----- lib/redphone/pagerduty.rb | 4 ++-- test/{pingdom_test.rb => pingdom_test_disabled.rb} | 0 4 files changed, 16 insertions(+), 11 deletions(-) rename test/{pingdom_test.rb => pingdom_test_disabled.rb} (100%) diff --git a/lib/redphone/helpers.rb b/lib/redphone/helpers.rb index 22b948c..4f7dd65 100644 --- a/lib/redphone/helpers.rb +++ b/lib/redphone/helpers.rb @@ -11,21 +11,27 @@ def http_request(options={}) user = options[:user] password = options[:password] headers = options[:headers] || Hash.new + parameters = options[:parameters] || Hash.new body = options[:body] http = Net::HTTP.new(uri.host, uri.port) if options[:ssl] == true http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE end + request_uri = uri.request_uri + unless parameters.empty? + request_uri += "?" + request_uri += parameters.map { |key, value| "#{key}=#{CGI.escape(value)}" }.join("&") + end request = case method when "get" - Net::HTTP::Get.new(uri.request_uri) + Net::HTTP::Get.new(request_uri) when "post" - Net::HTTP::Post.new(uri.request_uri) + Net::HTTP::Post.new(request_uri) when "put" - Net::HTTP::Put.new(uri.request_uri) + Net::HTTP::Put.new(request_uri) when "delete" - Net::HTTP::Delete.new(uri.request_uri) + Net::HTTP::Delete.new(request_uri) else raise "Unknown HTTP method: #{method}" end diff --git a/lib/redphone/loggly.rb b/lib/redphone/loggly.rb index fdb6db7..46c5c3e 100644 --- a/lib/redphone/loggly.rb +++ b/lib/redphone/loggly.rb @@ -15,12 +15,12 @@ def initialize(options={}) def search(options={}) raise "You must supply a query string" if options[:q].nil? - params = options.map { |key, value| "#{key}=#{CGI.escape(value)}" }.join("&") response = http_request( :user => @user, :password => @password, :ssl => true, - :uri => "https://#{@subdomain}.loggly.com/api/search?#{params}" + :uri => "https://#{@subdomain}.loggly.com/api/search", + :parameters => options ) JSON.parse(response.body) end @@ -29,13 +29,12 @@ def facets(options={}) raise "You must supply a query string" if options[:q].nil? facet_type = options[:facet_type] || "date" raise "Facet type must be date, ip, or input" if !%w[date ip input].include?(facet_type) - params_hash = options.reject { |key, value| key == :facet_type } - params = params_hash.map { |key, value| "#{key}=#{CGI.escape(value)}" }.join("&") response = http_request( :user => @user, :password => @password, :ssl => true, - :uri => "https://#{@subdomain}.loggly.com/api/facets/#{facet_type}/?#{params}" + :uri => "https://#{@subdomain}.loggly.com/api/facets/#{facet_type}/", + :parameters => options.reject { |key, value| key == :facet_type } ) JSON.parse(response.body) end diff --git a/lib/redphone/pagerduty.rb b/lib/redphone/pagerduty.rb index fd5be60..2c0070f 100644 --- a/lib/redphone/pagerduty.rb +++ b/lib/redphone/pagerduty.rb @@ -47,12 +47,12 @@ def resolve_incident(options={}) end def incidents(options={}) - params = options.map { |key, value| "#{key}=#{CGI.escape(value)}" }.join("&") response = http_request( :user => @user, :password => @password, :ssl => true, - :uri => "https://#{@subdomain}.pagerduty.com/api/v1/incidents?#{params}" + :uri => "https://#{@subdomain}.pagerduty.com/api/v1/incidents", + :parameters => options ) JSON.parse(response.body) end diff --git a/test/pingdom_test.rb b/test/pingdom_test_disabled.rb similarity index 100% rename from test/pingdom_test.rb rename to test/pingdom_test_disabled.rb