mirror of
https://github.com/internetee/registry.git
synced 2025-06-07 13:15:40 +02:00
52 lines
1.7 KiB
Ruby
52 lines
1.7 KiB
Ruby
module Actions
|
|
class DoRequest
|
|
def initialize(request, uri)
|
|
@request = request
|
|
@uri = uri
|
|
end
|
|
|
|
def call
|
|
response = if Rails.env.test?
|
|
do_test_request(@request, @uri)
|
|
elsif Rails.env.development?
|
|
do_dev_request(@request, @uri)
|
|
else
|
|
do_live_request(@request, @uri)
|
|
end
|
|
response
|
|
rescue StandardError, OpenURI::HTTPError => e
|
|
Rails.logger.debug e.message
|
|
end
|
|
|
|
def do_live_request(request, uri)
|
|
client_cert = File.read(ENV['cert_path'])
|
|
client_key = File.read(ENV['key_path'])
|
|
Net::HTTP.start(uri.hostname, uri.port,
|
|
use_ssl: (uri.scheme == 'https'),
|
|
cert: OpenSSL::X509::Certificate.new(client_cert),
|
|
key: OpenSSL::PKey::RSA.new(client_key)) do |http|
|
|
http.request(request)
|
|
end
|
|
end
|
|
|
|
def do_dev_request(request, uri)
|
|
client_cert = File.read(ENV['cert_path'])
|
|
client_key = File.read(ENV['key_path'])
|
|
Net::HTTP.start(uri.hostname, uri.port,
|
|
use_ssl: (uri.scheme == 'https'),
|
|
verify_mode: OpenSSL::SSL::VERIFY_NONE,
|
|
cert: OpenSSL::X509::Certificate.new(client_cert),
|
|
key: OpenSSL::PKey::RSA.new(client_key)) do |http|
|
|
http.request(request)
|
|
end
|
|
end
|
|
|
|
def do_test_request(request, uri)
|
|
Net::HTTP.start(uri.hostname, uri.port,
|
|
use_ssl: (uri.scheme == 'https'),
|
|
verify_mode: OpenSSL::SSL::VERIFY_NONE) do |http|
|
|
http.request(request)
|
|
end
|
|
end
|
|
end
|
|
end
|