4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
|
# File 'lib/faraday_persistent_excon/request_options.rb', line 4
def call(env)
opts = FaradayPersistentExcon.excon_options.dup
if env[:url].scheme == 'https' && ssl = env[:ssl]
opts[:ssl_verify_peer] = !!ssl.fetch(:verify, true)
opts[:ssl_ca_path] = ssl[:ca_path] if ssl[:ca_path]
opts[:ssl_ca_file] = ssl[:ca_file] if ssl[:ca_file]
opts[:client_cert] = ssl[:client_cert] if ssl[:client_cert]
opts[:client_key] = ssl[:client_key] if ssl[:client_key]
opts[:certificate] = ssl[:certificate] if ssl[:certificate]
opts[:private_key] = ssl[:private_key] if ssl[:private_key]
opts[:ssl_version] = ssl[:version] if ssl[:version]
opts[:ssl_min_version] = ssl[:min_version] if ssl[:min_version]
opts[:ssl_max_version] = ssl[:max_version] if ssl[:max_version]
end
if ( req = env[:request] )
if req[:timeout]
opts[:read_timeout] = req[:timeout]
opts[:connect_timeout] = req[:timeout]
opts[:write_timeout] = req[:timeout]
end
if req[:open_timeout]
opts[:connect_timeout] = req[:open_timeout]
end
if req[:proxy]
opts[:proxy] = {
host: req[:proxy][:uri].host,
hostname: req[:proxy][:uri].hostname,
port: req[:proxy][:uri].port,
scheme: req[:proxy][:uri].scheme,
user: req[:proxy][:user],
password: req[:proxy][:password]
}
end
end
if FaradayPersistentExcon.retry_idempotent_methods && FaradayPersistentExcon.idempotent_methods.include?(env[:method].to_s.upcase)
opts[:idempotent] = true
end
opts
end
|