mirror of
https://github.com/internetee/registry.git
synced 2025-07-20 09:46:09 +02:00
implement scan valid org contacts
This commit is contained in:
parent
7c8c9120b5
commit
8837252a46
4 changed files with 56 additions and 73 deletions
|
@ -2,7 +2,7 @@ class ScanCsvRegistryBusinnesContactsJob < ApplicationJob
|
|||
def perform(filename)
|
||||
BusinessRegistryContact.delete_all
|
||||
|
||||
return p 'File not exist!' unless File.exist?(filename)
|
||||
return unless File.exist?(filename)
|
||||
|
||||
enumurate_csv_file(filename)
|
||||
end
|
||||
|
@ -10,17 +10,12 @@ class ScanCsvRegistryBusinnesContactsJob < ApplicationJob
|
|||
private
|
||||
|
||||
def enumurate_csv_file(filename)
|
||||
i = 0
|
||||
CSV.foreach(filename, headers: true, col_sep: ';') do |row|
|
||||
record = BusinessRegistryContact.create(
|
||||
BusinessRegistryContact.create(
|
||||
name: row[0],
|
||||
registry_code: row[1],
|
||||
status: row[5]
|
||||
)
|
||||
|
||||
i += 1
|
||||
|
||||
p "#{record} is successfully created - #{i} count"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,78 +1,66 @@
|
|||
namespace :collect_invalid_contacts do
|
||||
HEADERS = %w[domain id name code registrar].freeze
|
||||
|
||||
namespace :contacts do
|
||||
desc 'Starts collect invalid validation contacts'
|
||||
task all_domains: :environment do
|
||||
# prepare_csv_file
|
||||
task scan_org: :environment do
|
||||
contacts = []
|
||||
|
||||
Contact.all.each do |contact|
|
||||
# email = convert_to_unicode(contact.email)
|
||||
# result = Truemail.validate(email, with: :mx)
|
||||
Contact.where(ident_type: 'org').each do |contact|
|
||||
contacts << contact unless checking_contacts(contact)
|
||||
end
|
||||
|
||||
# collect_data_for_csv(contact, result.result) unless result.result.success
|
||||
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
|
||||
contacts.each do |contact|
|
||||
domains = searching_domains(contact)
|
||||
|
||||
domains.each do |domain|
|
||||
registrar = Registrar.find_by(id: domain.registrar_id)
|
||||
csv << [domain.name, contact.id, contact.name, contact.ident, registrar.name]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# def find_related_domains(contact)
|
||||
# registrant_domains = Domain.where(registrant_id: contact.id)
|
||||
def searching_domains(contact)
|
||||
registrant_domains = Domain.where(registrant_id: contact.id)
|
||||
|
||||
# tech_domains = collect_tech_domains(contact)
|
||||
# admin_domains = collect_admin_domains(contact)
|
||||
tech_domains = collect_tech_domains(contact)
|
||||
admin_domains = collect_admin_domains(contact)
|
||||
|
||||
# tech_domains | admin_domains | registrant_domains
|
||||
# end
|
||||
tech_domains | admin_domains | registrant_domains
|
||||
end
|
||||
|
||||
# def collect_admin_domains(contact)
|
||||
# admin_domains = []
|
||||
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_contacts = AdminDomainContact.where(contact_id: contact.id)
|
||||
admin_contacts.each do |c|
|
||||
admin_domains << Domain.find(c.domain_id)
|
||||
end
|
||||
|
||||
# admin_domains
|
||||
# end
|
||||
admin_domains
|
||||
end
|
||||
|
||||
# def collect_tech_domains(contact)
|
||||
# tech_domains = []
|
||||
def collect_tech_domains(contact)
|
||||
tech_domains = []
|
||||
|
||||
# tech_contacts = TechDomainContact.where(contact_id: contact.id)
|
||||
# tech_contacts.each do |c|
|
||||
# tech_domains << Domain.find(c.domain_id)
|
||||
# end
|
||||
tech_contacts = TechDomainContact.where(contact_id: contact.id)
|
||||
tech_contacts.each do |c|
|
||||
tech_domains << Domain.find(c.domain_id)
|
||||
end
|
||||
|
||||
# tech_domains
|
||||
# end
|
||||
|
||||
# def collect_data_for_csv(contact, result)
|
||||
# domains = find_related_domains(contact)
|
||||
# domains.reject! { |dom| dom.statuses.include? DomainStatus::FORCE_DELETE }
|
||||
|
||||
# CSV.open('invalid_emails.csv', 'a') do |csv|
|
||||
# domains.each do |domain|
|
||||
# attrs = []
|
||||
# attrs.push(domain.name, contact.email, result.errors)
|
||||
|
||||
# csv << attrs
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
|
||||
# def prepare_csv_file
|
||||
# headers = %w[
|
||||
# contact
|
||||
# domain
|
||||
# error
|
||||
# ]
|
||||
# csv = CSV.open('invalid_emails.csv', 'w')
|
||||
# csv << headers
|
||||
# end
|
||||
|
||||
# def convert_to_unicode(email)
|
||||
# original_domain = Mail::Address.new(email).domain
|
||||
# decoded_domain = SimpleIDN.to_unicode(original_domain)
|
||||
|
||||
# original_local = Mail::Address.new(email).local
|
||||
# decoded_local = SimpleIDN.to_unicode(original_local)
|
||||
|
||||
# "#{decoded_local}@#{decoded_domain}"
|
||||
# end
|
||||
tech_domains
|
||||
end
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
namespace :collect_invalid_contacts do
|
||||
desc 'Starts collect invalid validation contacts'
|
||||
desc 'Starts collect invalid business contacts'
|
||||
task all_domains: :environment do
|
||||
prepare_csv_file
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
FILE_NAME = './ettevotja_rekvisiidid_init.csv'.freeze
|
||||
|
||||
namespace :collect_csv_data do
|
||||
desc 'Import from csv registry business contact into BusinessRegistryContact model'
|
||||
|
||||
FILE_NAME = './ettevotja_rekvisiidid_init.csv'.freeze
|
||||
|
||||
task business_contacts: :environment do
|
||||
ScanCsvRegistryBusinnesContactsJob.perform_later(FILE_NAME)
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue