Class: Twilio::HTTP::Client
- Inherits:
-
Object
- Object
- Twilio::HTTP::Client
- Defined in:
- lib/twilio-ruby/http/http_client.rb
Instance Attribute Summary collapse
-
#adapter ⇒ Object
Returns the value of attribute adapter.
-
#last_request ⇒ Object
readonly
Returns the value of attribute last_request.
-
#last_response ⇒ Object
readonly
Returns the value of attribute last_response.
-
#timeout ⇒ Object
readonly
Returns the value of attribute timeout.
Instance Method Summary collapse
- #_request(request) ⇒ Object
-
#initialize(proxy_prot = nil, proxy_addr = nil, proxy_port = nil, proxy_user = nil, proxy_pass = nil, ssl_ca_file = nil, timeout: nil) ⇒ Client
constructor
A new instance of Client.
- #request(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, timeout = nil) ⇒ Object
- #send(request) ⇒ Object
Constructor Details
#initialize(proxy_prot = nil, proxy_addr = nil, proxy_port = nil, proxy_user = nil, proxy_pass = nil, ssl_ca_file = nil, timeout: nil) ⇒ Client
Returns a new instance of Client.
11 12 13 14 15 16 17 18 19 |
# File 'lib/twilio-ruby/http/http_client.rb', line 11 def initialize(proxy_prot = nil, proxy_addr = nil, proxy_port = nil, proxy_user = nil, proxy_pass = nil, ssl_ca_file = nil, timeout: nil) @proxy_prot = proxy_prot @proxy_path = "#{proxy_addr}:#{proxy_port}" if proxy_addr && proxy_port @proxy_auth = "#{proxy_user}:#{proxy_pass}@" if proxy_pass && proxy_user @ssl_ca_file = ssl_ca_file @timeout = timeout @adapter = Faraday.default_adapter end |
Instance Attribute Details
#adapter ⇒ Object
Returns the value of attribute adapter.
8 9 10 |
# File 'lib/twilio-ruby/http/http_client.rb', line 8 def adapter @adapter end |
#last_request ⇒ Object (readonly)
Returns the value of attribute last_request.
9 10 11 |
# File 'lib/twilio-ruby/http/http_client.rb', line 9 def last_request @last_request end |
#last_response ⇒ Object (readonly)
Returns the value of attribute last_response.
9 10 11 |
# File 'lib/twilio-ruby/http/http_client.rb', line 9 def last_response @last_response end |
#timeout ⇒ Object (readonly)
Returns the value of attribute timeout.
9 10 11 |
# File 'lib/twilio-ruby/http/http_client.rb', line 9 def timeout @timeout end |
Instance Method Details
#_request(request) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/twilio-ruby/http/http_client.rb', line 21 def _request(request) @connection = Faraday.new(url: request.host + ':' + request.port.to_s, ssl: { verify: true }) do |f| f..params_encoder = Faraday::FlatParamsEncoder f.request :url_encoded f.adapter @adapter f.headers = request.headers f.basic_auth(request.auth[0], request.auth[1]) f.proxy = "#{@proxy_prot}://#{@proxy_auth}#{@proxy_path}" if @proxy_prot && @proxy_path f..open_timeout = request.timeout || @timeout f..timeout = request.timeout || @timeout end @last_request = request @last_response = nil response = send(request) if response.status == 504 object = { message: 'Request timeout', code: 504 }.to_json elsif response.body && !response.body.empty? object = response.body elsif response.status == 400 object = { message: 'Bad request', code: 400 }.to_json end twilio_response = Twilio::Response.new(response.status, object, headers: response.headers) @last_response = twilio_response twilio_response end |
#request(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, timeout = nil) ⇒ Object
59 60 61 62 |
# File 'lib/twilio-ruby/http/http_client.rb', line 59 def request(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, timeout = nil) request = Twilio::Request.new(host, port, method, url, params, data, headers, auth, timeout) _request(request) end |
#send(request) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/twilio-ruby/http/http_client.rb', line 51 def send(request) @connection.send(request.method.downcase.to_sym, request.url, request.method == 'GET' ? request.params : request.data) rescue Faraday::Error => e raise Twilio::REST::TwilioError, e end |