Merge remote-tracking branch 'origin/master' into 1177-bulk-force-delete

This commit is contained in:
Karl Erik Õunapuu 2020-11-05 15:40:54 +02:00
commit 6eddbb81ad
No known key found for this signature in database
GPG key ID: C9DD647298A34764
12 changed files with 222 additions and 28 deletions

View file

@ -85,8 +85,8 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
end
def cancel_force_delete
restore_statuses_before_force_delete
remove_force_delete_statuses
restore_statuses_before_force_delete
clear_force_delete_data
self.force_delete_date = nil
self.force_delete_start = nil
@ -124,7 +124,7 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
end
def preserve_current_statuses_for_force_delete
self.statuses_before_force_delete = statuses.clone
update(statuses_before_force_delete: statuses)
end
def restore_statuses_before_force_delete

View file

@ -54,14 +54,25 @@ class RegistrantUser < User
username.split.second
end
def update_related_contacts
contacts = Contact.where(ident: ident, ident_country_code: country.alpha2)
.where('UPPER(name) != UPPER(?)', username)
contacts.each do |contact|
contact.update(name: username)
action = actions.create!(contact: contact, operation: :update)
contact.registrar.notify(action)
end
end
class << self
def find_or_create_by_api_data(user_data = {})
return false unless user_data[:ident]
return false unless user_data[:first_name]
return false unless user_data[:last_name]
user_data.each_value { |v| v.upcase! if v.is_a?(String) }
user_data[:country_code] ||= 'EE'
%i[ident country_code].each { |f| user_data[f].upcase! if user_data[f].is_a?(String) }
find_or_create_by_user_data(user_data)
end
@ -91,6 +102,7 @@ class RegistrantUser < User
user.username = "#{user_data[:first_name]} #{user_data[:last_name]}"
user.save
user.update_related_contacts
user
end
end