lib/fullcontact/connection.rb
require 'faraday_middleware'
require 'faraday/request/gateway'
require 'faraday/response/fullcontact_errors'
require 'faraday/response/add_headers'
require 'faraday/response/rubyize'
require 'faraday_middleware/response/mashify'
module FullContact
# @private
module Connection
private
def connection(raw=false, faraday_options={})
options = {
:headers => {'Accept' => "application/#{format}", 'User-Agent' => user_agent},
:proxy => proxy,
:ssl => {:verify => false},
:url => api_endpoint,
}.merge(faraday_options)
Faraday.new(options) do |builder|
builder.use Faraday::Request::UrlEncoded
builder.use Faraday::Request::Gateway, gateway if gateway
builder.use FaradayMiddleware::Mashify unless raw
builder.use Faraday::Response::AddHeaders if FullContact.include_headers_in_response
builder.use Faraday::Response::Rubyize unless raw or FullContact.skip_rubyize
unless raw
case format.to_s.downcase
when 'json'
builder.use Faraday::Response::ParseJson
end
end
builder.use Faraday::Response::FullContactErrors
builder.adapter Faraday.default_adapter
end
end
end
end