Class: KayakoClient::NetHTTP

Inherits:
Object
  • Object
show all
Includes:
HTTPBackend, Logger
Defined in:
lib/kayako_client/http/net_http.rb

Instance Method Summary collapse

Methods included from Logger

included, #logger, #logger=

Constructor Details

#initialize(options = {}) ⇒ NetHTTP

Returns a new instance of NetHTTP.



22
23
24
25
# 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

Instance Method Details

#delete(base, params = {}) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
# 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 = {}) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# 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 = {}) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# 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 = {}) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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) ⇒ Object



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# 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