module Domains module UpdateConfirm class ProcessUpdateConfirmed < Base def execute ActiveRecord::Base.transaction do old_registrant = domain.registrant notify_registrar(:poll_pending_update_confirmed_by_registrant) apply_pending_update! raise_errors!(domain) RegistrantChange.new(domain: domain, old_registrant: old_registrant).confirm end end def apply_pending_update! preclean_pendings update_domain clean_pendings! WhoisRecord.find_by(domain_id: domain.id)&.save # need to reload model end def update_domain frame_json = domain.pending_json['frame'] frame = frame_json ? frame_json.with_indifferent_access : {} assign_domain_update_meta Actions::DomainUpdate.new(domain, frame, true).call end def assign_domain_update_meta user = ApiUser.find_by(id: user_id) if user_id.present? && user_id.is_a?(String) domain.upid = user.registrar.id if user.present? && user.registrar domain.up_date = Time.zone.now end private def user_id @user_id ||= domain.pending_json.dig('current_user_id') end end end end