mirror of
https://github.com/internetee/registry.git
synced 2025-06-06 20:55:44 +02:00
Merge pull request #2056 from internetee/1851-validate-estonian-company-data-from-business-registry
optimize searching
This commit is contained in:
commit
d20a9406be
1 changed files with 15 additions and 32 deletions
|
@ -3,28 +3,13 @@ HEADERS = %w[domain id name code registrar].freeze
|
||||||
namespace :contacts do
|
namespace :contacts do
|
||||||
desc 'Starts collect invalid validation contacts'
|
desc 'Starts collect invalid validation contacts'
|
||||||
task scan_org: :environment do
|
task scan_org: :environment do
|
||||||
contacts = []
|
csv = CSV.open('invalid_business_contacts.csv', 'w')
|
||||||
|
|
||||||
Contact.where(ident_type: 'org').each do |contact|
|
|
||||||
contacts << contact unless checking_contacts(contact)
|
|
||||||
end
|
|
||||||
|
|
||||||
contacts.select! { |c| c.ident_country_code == 'EE' }
|
|
||||||
magic_with_contacts(contacts)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def checking_contacts(contact)
|
|
||||||
c = BusinessRegistryContact.find_by(registry_code: contact.ident)
|
|
||||||
return false if c.nil? || c.status == 'N'
|
|
||||||
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def magic_with_contacts(contacts)
|
|
||||||
CSV.open('invalid_business_contacts.csv', 'w') do |csv|
|
|
||||||
csv << HEADERS
|
csv << HEADERS
|
||||||
contacts.each do |contact|
|
|
||||||
|
Contact.where(ident_type: 'org').find_in_batches do |contact_group|
|
||||||
|
contact_group.each do |contact|
|
||||||
|
next if checking_contacts(contact)
|
||||||
|
|
||||||
domains = domain_filter(contact)
|
domains = domain_filter(contact)
|
||||||
domains.each do |domain|
|
domains.each do |domain|
|
||||||
registrar = Registrar.find_by(id: domain.registrar_id)
|
registrar = Registrar.find_by(id: domain.registrar_id)
|
||||||
|
@ -33,6 +18,16 @@ def magic_with_contacts(contacts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def checking_contacts(contact)
|
||||||
|
return true unless contact.ident_country_code == 'EE'
|
||||||
|
|
||||||
|
c = BusinessRegistryContact.find_by(registry_code: contact.ident)
|
||||||
|
return false if c.nil? || c.status == 'N'
|
||||||
|
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
def domain_filter(contact)
|
def domain_filter(contact)
|
||||||
domains = searching_domains(contact)
|
domains = searching_domains(contact)
|
||||||
|
@ -44,20 +39,8 @@ def searching_domains(contact)
|
||||||
registrant_domains = Domain.where(registrant_id: contact.id)
|
registrant_domains = Domain.where(registrant_id: contact.id)
|
||||||
|
|
||||||
tech_domains = collect_tech_domains(contact)
|
tech_domains = collect_tech_domains(contact)
|
||||||
admin_domains = collect_admin_domains(contact)
|
|
||||||
|
|
||||||
tech_domains | admin_domains | registrant_domains
|
tech_domains | registrant_domains
|
||||||
end
|
|
||||||
|
|
||||||
def collect_admin_domains(contact)
|
|
||||||
admin_domains = []
|
|
||||||
|
|
||||||
admin_contacts = AdminDomainContact.where(contact_id: contact.id)
|
|
||||||
admin_contacts.each do |c|
|
|
||||||
admin_domains << Domain.find(c.domain_id)
|
|
||||||
end
|
|
||||||
|
|
||||||
admin_domains
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def collect_tech_domains(contact)
|
def collect_tech_domains(contact)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue