mirror of
https://github.com/internetee/registry.git
synced 2025-06-11 15:14:47 +02:00
refactoring
This commit is contained in:
parent
c24bedae27
commit
1598e16455
7 changed files with 95 additions and 57 deletions
|
@ -7,7 +7,10 @@ class Registrar
|
||||||
authorize! :manage, :repp
|
authorize! :manage, :repp
|
||||||
uri = BASE_URL
|
uri = BASE_URL
|
||||||
request = form_request(uri)
|
request = form_request(uri)
|
||||||
response = do_request(request, uri)
|
|
||||||
|
action = Actions::DoRequest.new(request, uri)
|
||||||
|
response = action.call
|
||||||
|
|
||||||
start_notice = t('.replaced')
|
start_notice = t('.replaced')
|
||||||
|
|
||||||
process_response(response: response,
|
process_response(response: response,
|
||||||
|
|
|
@ -62,48 +62,6 @@ class Registrar
|
||||||
notices
|
notices
|
||||||
end
|
end
|
||||||
|
|
||||||
def do_request(request, uri)
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
def ready_to_renew?
|
def ready_to_renew?
|
||||||
domain_ids_for_bulk_renew.present? && params[:renew].present?
|
domain_ids_for_bulk_renew.present? && params[:renew].present?
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,8 +24,8 @@ class Registrar
|
||||||
request.basic_auth(current_registrar_user.username,
|
request.basic_auth(current_registrar_user.username,
|
||||||
current_registrar_user.plain_text_password)
|
current_registrar_user.plain_text_password)
|
||||||
|
|
||||||
|
action = Actions::DoRequest.new(request, uri)
|
||||||
response = do_request(request, uri)
|
response = action.call
|
||||||
|
|
||||||
parsed_response = JSON.parse(response.body, symbolize_names: true)
|
parsed_response = JSON.parse(response.body, symbolize_names: true)
|
||||||
|
|
||||||
|
|
|
@ -6,21 +6,19 @@ class Registrar
|
||||||
ipv4 = params[:ipv4].split("\r\n")
|
ipv4 = params[:ipv4].split("\r\n")
|
||||||
ipv6 = params[:ipv6].split("\r\n")
|
ipv6 = params[:ipv6].split("\r\n")
|
||||||
|
|
||||||
|
uri = URI.parse("#{ENV['repp_url']}registrar/nameservers")
|
||||||
|
|
||||||
domains = domain_list_from_csv
|
domains = domain_list_from_csv
|
||||||
|
|
||||||
return csv_list_empty_guard if domains == []
|
return csv_list_empty_guard if domains == []
|
||||||
|
|
||||||
uri = URI.parse("#{ENV['repp_url']}registrar/nameservers")
|
options = {
|
||||||
request = Net::HTTP::Put.new(uri, 'Content-Type' => 'application/json')
|
uri: uri,
|
||||||
request.body = { data: { type: 'nameserver', id: params[:old_hostname],
|
ipv4: ipv4,
|
||||||
domains: domains || [],
|
ipv6: ipv6,
|
||||||
attributes: { hostname: params[:new_hostname],
|
}
|
||||||
ipv4: ipv4,
|
action = Actions::BulkNameserversChange.new(params, domains, current_registrar_user, options)
|
||||||
ipv6: ipv6 } } }.to_json
|
response = action.call
|
||||||
request.basic_auth(current_registrar_user.username,
|
|
||||||
current_registrar_user.plain_text_password)
|
|
||||||
|
|
||||||
response = do_request(request, uri)
|
|
||||||
|
|
||||||
parsed_response = JSON.parse(response.body, symbolize_names: true)
|
parsed_response = JSON.parse(response.body, symbolize_names: true)
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,10 @@ class Registrar
|
||||||
|
|
||||||
uri = BASE_URL
|
uri = BASE_URL
|
||||||
request = form_request(uri)
|
request = form_request(uri)
|
||||||
response = do_request(request, uri)
|
|
||||||
|
action = Actions::DoRequest.new(request, uri)
|
||||||
|
response = action.call
|
||||||
|
|
||||||
start_notice = t('.replaced')
|
start_notice = t('.replaced')
|
||||||
|
|
||||||
process_response(response: response,
|
process_response(response: response,
|
||||||
|
|
26
app/interactions/actions/bulk_nameservers_change.rb
Normal file
26
app/interactions/actions/bulk_nameservers_change.rb
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
module Actions
|
||||||
|
class BulkNameserversChange
|
||||||
|
def initialize(params, domains, current_registrar_user, options = {})
|
||||||
|
@params = params
|
||||||
|
@domains = domains
|
||||||
|
@current_registrar_user = current_registrar_user
|
||||||
|
@ipv4 = options.fetch(:ipv4)
|
||||||
|
@ipv6 = options.fetch(:ipv6)
|
||||||
|
@uri = options.fetch(:uri)
|
||||||
|
end
|
||||||
|
|
||||||
|
def call
|
||||||
|
request = Net::HTTP::Put.new(@uri, 'Content-Type' => 'application/json')
|
||||||
|
request.body = { data: { type: 'nameserver', id: @params[:old_hostname],
|
||||||
|
domains: @domains || [],
|
||||||
|
attributes: { hostname: @params[:new_hostname],
|
||||||
|
ipv4: @ipv4,
|
||||||
|
ipv6: @ipv6 } } }.to_json
|
||||||
|
request.basic_auth(@current_registrar_user.username,
|
||||||
|
@current_registrar_user.plain_text_password)
|
||||||
|
|
||||||
|
action = Actions::DoRequest.new(request, @uri)
|
||||||
|
action.call
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
50
app/interactions/actions/do_request.rb
Normal file
50
app/interactions/actions/do_request.rb
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
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
|
||||||
|
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
|
Loading…
Add table
Add a link
Reference in a new issue