class Twilio::HTTP::Client
Attributes
adapter[RW]
last_request[R]
last_response[R]
timeout[R]
Public Class Methods
new(proxy_prot = nil, proxy_addr = nil, proxy_port = nil, proxy_user = nil, proxy_pass = nil, ssl_ca_file = nil, timeout: nil)
click to toggle source
# File lib/twilio-ruby/http/http_client.rb 11 def initialize(proxy_prot = nil, proxy_addr = nil, proxy_port = nil, proxy_user = nil, proxy_pass = nil, 12 ssl_ca_file = nil, timeout: nil) 13 @proxy_prot = proxy_prot 14 @proxy_path = "#{proxy_addr}:#{proxy_port}" if proxy_addr && proxy_port 15 @proxy_auth = "#{proxy_user}:#{proxy_pass}@" if proxy_pass && proxy_user 16 @ssl_ca_file = ssl_ca_file 17 @timeout = timeout 18 @adapter = Faraday.default_adapter 19 @configure_connection_blocks = [] 20 end
Public Instance Methods
_request(request)
click to toggle source
# File lib/twilio-ruby/http/http_client.rb 29 def _request(request) 30 @connection = Faraday.new(url: request.host + ':' + request.port.to_s, ssl: { verify: true }) do |f| 31 f.options.params_encoder = Faraday::FlatParamsEncoder 32 f.request :url_encoded 33 f.headers = request.headers 34 f.request(:basic_auth, request.auth[0], request.auth[1]) 35 f.proxy = "#{@proxy_prot}://#{@proxy_auth}#{@proxy_path}" if @proxy_prot && @proxy_path 36 f.options.open_timeout = request.timeout || @timeout 37 f.options.timeout = request.timeout || @timeout 38 39 @configure_connection_blocks.each { |block| block.call(f) } 40 f.adapter @adapter 41 end 42 43 @last_request = request 44 @last_response = nil 45 46 response = send(request) 47 if response.status == 504 48 object = { message: 'Request timeout', code: 504 }.to_json 49 elsif response.body && !response.body.empty? 50 object = response.body 51 elsif response.status == 400 52 object = { message: 'Bad request', code: 400 }.to_json 53 end 54 55 twilio_response = Twilio::Response.new(response.status, object, headers: response.headers) 56 @last_response = twilio_response 57 58 twilio_response 59 end
configure_connection(&block)
click to toggle source
# File lib/twilio-ruby/http/http_client.rb 22 def configure_connection(&block) 23 raise ArgumentError, "#{__method__} must be given a block!" unless block_given? 24 25 @configure_connection_blocks << block 26 nil 27 end
request(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, timeout = nil)
click to toggle source
# File lib/twilio-ruby/http/http_client.rb 69 def request(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, timeout = nil) 70 request = Twilio::Request.new(host, port, method, url, params, data, headers, auth, timeout) 71 _request(request) 72 end
send(request)
click to toggle source
# File lib/twilio-ruby/http/http_client.rb 61 def send(request) 62 @connection.send(request.method.downcase.to_sym, 63 request.url, 64 request.method == 'GET' ? request.params : request.data) 65 rescue Faraday::Error => e 66 raise Twilio::REST::TwilioError, e 67 end