class KayakoClient::NetHTTP
Public Class Methods
new(options = {})
click to toggle source
# File lib/kayako_client/http/net_http.rb, line 22 def initialize(options = {}) @client = Net::HTTP::Proxy(options[:host], options[:port], options[:user], options[:pass]) @logger = options[:logger] if options[:logger] end
Public Instance Methods
delete(base, params = {})
click to toggle source
# File lib/kayako_client/http/net_http.rb, line 76 def delete(base, params = {}) uri = URI.parse(base) log = params.delete(:logger) || logger session = @client.new(uri.host, uri.port) session.use_ssl = true if uri.is_a?(URI::HTTPS) resp = session.start do |request| query = url(uri.path, params) log.debug ":delete => #{query}" if log request.delete(query) end response(resp) end
get(base, params = {})
click to toggle source
# File lib/kayako_client/http/net_http.rb, line 27 def get(base, params = {}) uri = URI.parse(base) log = params.delete(:logger) || logger session = @client.new(uri.host, uri.port) session.use_ssl = true if uri.is_a?(URI::HTTPS) resp = session.start do |request| query = url(uri.path, params) log.debug ":get => #{query}" if log request.get(query) end response(resp) end
post(base, params = {})
click to toggle source
# File lib/kayako_client/http/net_http.rb, line 58 def post(base, params = {}) uri = URI.parse(base) e = params.delete(:e) log = params.delete(:logger) || logger session = @client.new(uri.host, uri.port) session.use_ssl = true if uri.is_a?(URI::HTTPS) resp = session.start do |request| query = url(uri.path, { :e => e }) data = form_data(params) if log log.debug ":post => #{query}" log.debug "POST Data: #{data}" end request.post(query, data, 'Content-Type' => 'application/x-www-form-urlencoded') end response(resp) end
put(base, params = {})
click to toggle source
# File lib/kayako_client/http/net_http.rb, line 40 def put(base, params = {}) uri = URI.parse(base) e = params.delete(:e) log = params.delete(:logger) || logger session = @client.new(uri.host, uri.port) session.use_ssl = true if uri.is_a?(URI::HTTPS) resp = session.start do |request| query = url(uri.path, { :e => e }) data = form_data(params) if log log.debug ":put => #{query}" log.debug "PUT Data: #{data}" end request.put(query, data, 'Content-Type' => 'application/x-www-form-urlencoded') end response(resp) end
response(resp)
click to toggle source
# File lib/kayako_client/http/net_http.rb, line 89 def response(resp) case resp when Net::HTTPOK KayakoClient::HTTPOK.new(resp.body) when Net::HTTPBadRequest KayakoClient::HTTPBadRequest.new(resp.body) when Net::HTTPUnauthorized KayakoClient::HTTPUnauthorized.new(resp.body) when Net::HTTPForbidden KayakoClient::HTTPForbidden.new(resp.body) when Net::HTTPNotFound KayakoClient::HTTPNotFound.new(resp.body) when Net::HTTPMethodNotAllowed KayakoClient::HTTPNotAllowed.new(resp.body) else KayakoClient::HTTPResponse.new(resp.code, resp.body) end end
Private Instance Methods
form_data(params = {})
click to toggle source
# File lib/kayako_client/http/net_http.rb, line 118 def form_data(params = {}) params.collect { |name, value| value.is_a?(Array) ? value.collect { |item| urlencode(name.to_s) + '[]=' + urlencode(item.to_s) } : urlencode(name.to_s) + '=' + urlencode(value.to_s) }.join('&') end
url(base, params = {})
click to toggle source
# File lib/kayako_client/http/net_http.rb, line 114 def url(base, params = {}) base + '?' + params.collect { |name, value| urlencode(name.to_s) + '=' + urlencode(value.to_s) }.join('&') end
urlencode(string)
click to toggle source
# File lib/kayako_client/http/net_http.rb, line 110 def urlencode(string) URI.escape(string, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) end