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)
|
def perform(filename)
|
||||||
BusinessRegistryContact.delete_all
|
BusinessRegistryContact.delete_all
|
||||||
|
|
||||||
return p 'File not exist!' unless File.exist?(filename)
|
return unless File.exist?(filename)
|
||||||
|
|
||||||
enumurate_csv_file(filename)
|
enumurate_csv_file(filename)
|
||||||
end
|
end
|
||||||
|
@ -10,17 +10,12 @@ class ScanCsvRegistryBusinnesContactsJob < ApplicationJob
|
||||||
private
|
private
|
||||||
|
|
||||||
def enumurate_csv_file(filename)
|
def enumurate_csv_file(filename)
|
||||||
i = 0
|
|
||||||
CSV.foreach(filename, headers: true, col_sep: ';') do |row|
|
CSV.foreach(filename, headers: true, col_sep: ';') do |row|
|
||||||
record = BusinessRegistryContact.create(
|
BusinessRegistryContact.create(
|
||||||
name: row[0],
|
name: row[0],
|
||||||
registry_code: row[1],
|
registry_code: row[1],
|
||||||
status: row[5]
|
status: row[5]
|
||||||
)
|
)
|
||||||
|
|
||||||
i += 1
|
|
||||||
|
|
||||||
p "#{record} is successfully created - #{i} count"
|
|
||||||
end
|
end
|
||||||
end
|
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'
|
desc 'Starts collect invalid validation contacts'
|
||||||
task all_domains: :environment do
|
task scan_org: :environment do
|
||||||
# prepare_csv_file
|
contacts = []
|
||||||
|
|
||||||
Contact.all.each do |contact|
|
Contact.where(ident_type: 'org').each do |contact|
|
||||||
# email = convert_to_unicode(contact.email)
|
contacts << contact unless checking_contacts(contact)
|
||||||
# result = Truemail.validate(email, with: :mx)
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# def find_related_domains(contact)
|
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)
|
admin_domains = collect_admin_domains(contact)
|
||||||
|
|
||||||
# tech_domains | admin_domains | registrant_domains
|
tech_domains | admin_domains | registrant_domains
|
||||||
# end
|
end
|
||||||
|
|
||||||
# def collect_admin_domains(contact)
|
def collect_admin_domains(contact)
|
||||||
# admin_domains = []
|
admin_domains = []
|
||||||
|
|
||||||
# admin_contacts = AdminDomainContact.where(contact_id: contact.id)
|
admin_contacts = AdminDomainContact.where(contact_id: contact.id)
|
||||||
# admin_contacts.each do |c|
|
admin_contacts.each do |c|
|
||||||
# admin_domains << Domain.find(c.domain_id)
|
admin_domains << Domain.find(c.domain_id)
|
||||||
# end
|
end
|
||||||
|
|
||||||
# admin_domains
|
admin_domains
|
||||||
# end
|
end
|
||||||
|
|
||||||
# def collect_tech_domains(contact)
|
def collect_tech_domains(contact)
|
||||||
# tech_domains = []
|
tech_domains = []
|
||||||
|
|
||||||
# tech_contacts = TechDomainContact.where(contact_id: contact.id)
|
tech_contacts = TechDomainContact.where(contact_id: contact.id)
|
||||||
# tech_contacts.each do |c|
|
tech_contacts.each do |c|
|
||||||
# tech_domains << Domain.find(c.domain_id)
|
tech_domains << Domain.find(c.domain_id)
|
||||||
# end
|
end
|
||||||
|
|
||||||
# tech_domains
|
tech_domains
|
||||||
# end
|
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
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
namespace :collect_invalid_contacts do
|
namespace :collect_invalid_contacts do
|
||||||
desc 'Starts collect invalid validation contacts'
|
desc 'Starts collect invalid business contacts'
|
||||||
task all_domains: :environment do
|
task all_domains: :environment do
|
||||||
prepare_csv_file
|
prepare_csv_file
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
FILE_NAME = './ettevotja_rekvisiidid_init.csv'.freeze
|
||||||
|
|
||||||
namespace :collect_csv_data do
|
namespace :collect_csv_data do
|
||||||
desc 'Import from csv registry business contact into BusinessRegistryContact model'
|
desc 'Import from csv registry business contact into BusinessRegistryContact model'
|
||||||
|
|
||||||
FILE_NAME = './ettevotja_rekvisiidid_init.csv'.freeze
|
|
||||||
|
|
||||||
task business_contacts: :environment do
|
task business_contacts: :environment do
|
||||||
ScanCsvRegistryBusinnesContactsJob.perform_later(FILE_NAME)
|
ScanCsvRegistryBusinnesContactsJob.perform_later(FILE_NAME)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue