mirror of
https://github.com/internetee/registry.git
synced 2025-07-24 19:48:28 +02:00
made refactoring base codeclimate
This commit is contained in:
parent
b8be4ec928
commit
7cb220e704
5 changed files with 32 additions and 24 deletions
|
@ -9,25 +9,26 @@ module Actions
|
|||
private
|
||||
|
||||
def check_for_records_value(email:, value:)
|
||||
email = Mail::Address.new(email).domain
|
||||
result = nil
|
||||
email_domain = Mail::Address.new(email).domain
|
||||
dns_servers = ENV['dnssec_resolver_ips'].to_s.split(',').map(&:strip)
|
||||
|
||||
resolve_a_and_aaaa_records(dns_servers: dns_servers, email_domain: email_domain, value: value)
|
||||
end
|
||||
|
||||
def resolve_a_and_aaaa_records(dns_servers:, email_domain:, value:)
|
||||
Resolv::DNS.open({ nameserver: dns_servers }) do |dns|
|
||||
dns.timeouts = ENV['a_and_aaaa_validation_timeout'].to_i || 1
|
||||
ress = nil
|
||||
|
||||
case value
|
||||
when 'A'
|
||||
ress = dns.getresources email, Resolv::DNS::Resource::IN::A
|
||||
ress = dns.getresources email_domain, Resolv::DNS::Resource::IN::A
|
||||
when 'AAAA'
|
||||
ress = dns.getresources email, Resolv::DNS::Resource::IN::AAAA
|
||||
ress = dns.getresources email_domain, Resolv::DNS::Resource::IN::AAAA
|
||||
end
|
||||
|
||||
result = ress.map { |r| r.address }
|
||||
ress.map(&:address)
|
||||
end
|
||||
|
||||
result
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -22,11 +22,11 @@ module Actions
|
|||
[:regex, :mx].each do |m|
|
||||
result = Actions::SimpleMailValidator.run(email: contact.email, level: m)
|
||||
|
||||
unless result
|
||||
contact.add_epp_error('2005', nil, "email didn't pass validation", I18n.t(:parameter_value_syntax_error))
|
||||
@error = true
|
||||
return
|
||||
end
|
||||
next if result
|
||||
|
||||
contact.add_epp_error('2005', nil, "email didn't pass validation", I18n.t(:parameter_value_syntax_error))
|
||||
@error = true
|
||||
return
|
||||
end
|
||||
|
||||
true
|
||||
|
|
|
@ -25,12 +25,11 @@ module Actions
|
|||
|
||||
[:regex, :mx].each do |m|
|
||||
result = Actions::SimpleMailValidator.run(email: @new_attributes[:email], level: m)
|
||||
next if result
|
||||
|
||||
unless result
|
||||
contact.add_epp_error('2005', nil, "email didn't pass validation", I18n.t(:parameter_value_syntax_error))
|
||||
@error = true
|
||||
return
|
||||
end
|
||||
contact.add_epp_error('2005', nil, "email didn't pass validation", I18n.t(:parameter_value_syntax_error))
|
||||
@error = true
|
||||
return
|
||||
end
|
||||
|
||||
true
|
||||
|
|
|
@ -54,12 +54,12 @@ module Actions
|
|||
result_validation = Actions::AAndAaaaEmailValidation.call(email: @email, value: 'A')
|
||||
output_a_and_aaaa_validation_results(email: @email,
|
||||
result: result_validation,
|
||||
type: 'A') unless Rails.env.test?
|
||||
type: 'A')
|
||||
|
||||
result_validation = Actions::AAndAaaaEmailValidation.call(email: @email, value: 'AAAA') if result_validation.empty?
|
||||
output_a_and_aaaa_validation_results(email: @email,
|
||||
result: result_validation,
|
||||
type: 'AAAA') unless Rails.env.test?
|
||||
type: 'AAAA')
|
||||
|
||||
result_validation.present? ? result.success = true : result.success = false
|
||||
validation_eventable.validation_events.create(validation_event_attrs(result))
|
||||
|
@ -71,7 +71,9 @@ module Actions
|
|||
true
|
||||
end
|
||||
|
||||
def output_a_and_aaaa_validation_results(email:, result:, type: )
|
||||
def output_a_and_aaaa_validation_results(email:, result:, type:)
|
||||
return if Rails.env.test?
|
||||
|
||||
logger.info "Validated #{type} record for #{email}. Validation result - #{result}"
|
||||
end
|
||||
|
||||
|
|
|
@ -3,26 +3,32 @@ module Actions
|
|||
extend self
|
||||
|
||||
def run(email:, level:)
|
||||
result = Truemail.validate(email, with: level).result.success
|
||||
result = truemail_validate(email: email, level: level)
|
||||
result = validate_for_a_and_aaaa_records(email) if !result && level == :mx
|
||||
result
|
||||
end
|
||||
|
||||
def truemail_validate(email:, level:)
|
||||
Truemail.validate(email, with: level).result.success
|
||||
end
|
||||
|
||||
def validate_for_a_and_aaaa_records(email)
|
||||
result_validation = Actions::AAndAaaaEmailValidation.call(email: email, value: 'A')
|
||||
output_a_and_aaaa_validation_results(email: email,
|
||||
result: result_validation,
|
||||
type: 'A') unless Rails.env.test?
|
||||
type: 'A')
|
||||
|
||||
result_validation = Actions::AAndAaaaEmailValidation.call(email: email, value: 'AAAA') if result_validation.empty?
|
||||
output_a_and_aaaa_validation_results(email: email,
|
||||
result: result_validation,
|
||||
type: 'AAAA') unless Rails.env.test?
|
||||
type: 'AAAA')
|
||||
|
||||
result_validation.present? ? true : false
|
||||
end
|
||||
|
||||
def output_a_and_aaaa_validation_results(email:, result:, type: )
|
||||
def output_a_and_aaaa_validation_results(email:, result:, type:)
|
||||
return if Rails.env.test?
|
||||
|
||||
logger.info "Validated #{type} record for #{email}. Validation result - #{result}"
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue