From 5324a99ea43f145feb489c11724a5e21f3b2b808 Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Wed, 18 May 2022 16:23:28 +0300 Subject: [PATCH 1/2] fixed looping validation email --- app/interactions/actions/contact_update.rb | 15 +++++++++++---- lib/tasks/verify_email.rake | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/interactions/actions/contact_update.rb b/app/interactions/actions/contact_update.rb index bfa3f3b7c..2cd6303ef 100644 --- a/app/interactions/actions/contact_update.rb +++ b/app/interactions/actions/contact_update.rb @@ -37,11 +37,18 @@ module Actions end def maybe_filtering_old_failed_records - validation_events = contact.validation_events - return unless validation_events.count > 1 + # validation_events = contact.validation_events + # return unless validation_events.count > 1 - validation_events.order!(created_at: :asc) - validation_events.first.destroy while validation_events.count >= 1 + # validation_events.order!(created_at: :asc) + # validation_events.first.destroy while validation_events.count >= 1 + + if contact.validation_events.count > 1 + contact.validation_events.order!(created_at: :asc) + while contact.validation_events.count >= 1 + contact.validation_events.first.destroy + end + end end def maybe_remove_address diff --git a/lib/tasks/verify_email.rake b/lib/tasks/verify_email.rake index b90fde0d6..0f79e269e 100644 --- a/lib/tasks/verify_email.rake +++ b/lib/tasks/verify_email.rake @@ -4,7 +4,7 @@ require 'syslog/logger' require 'active_record' namespace :verify_email do - # bundle exec rake verify_email:check_all -- --domain_name=shop.test --check_level=mx --spam_protect=true + # bundle exec rake verify_email:check_all -- --check_level=mx --spam_protect=true # bundle exec rake verify_email:check_all -- -dshop.test -cmx -strue desc 'Starts verifying email jobs with optional check level and spam protection' task check_all: :environment do From 643f235378893ee7475ebac3450a40ed7ef31658 Mon Sep 17 00:00:00 2001 From: Thiago Youssef Date: Thu, 19 May 2022 11:08:14 +0300 Subject: [PATCH 2/2] Fix loop on check email --- app/interactions/actions/contact_update.rb | 6 ----- app/interactions/actions/email_check.rb | 30 +++++++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/interactions/actions/contact_update.rb b/app/interactions/actions/contact_update.rb index 2cd6303ef..9092d76c9 100644 --- a/app/interactions/actions/contact_update.rb +++ b/app/interactions/actions/contact_update.rb @@ -37,12 +37,6 @@ module Actions end def maybe_filtering_old_failed_records - # validation_events = contact.validation_events - # return unless validation_events.count > 1 - - # validation_events.order!(created_at: :asc) - # validation_events.first.destroy while validation_events.count >= 1 - if contact.validation_events.count > 1 contact.validation_events.order!(created_at: :asc) while contact.validation_events.count >= 1 diff --git a/app/interactions/actions/email_check.rb b/app/interactions/actions/email_check.rb index a927a3274..7412b979e 100644 --- a/app/interactions/actions/email_check.rb +++ b/app/interactions/actions/email_check.rb @@ -26,21 +26,27 @@ module Actions Rails.env.test? && check_level == 'smtp' ? :mx : check_level.to_sym end - def destroy_old_validations(validation_events, minimum_size, check_level) - return unless validation_events.count > minimum_size && @check_level == check_level - - validation_events.order!(created_at: :asc) - validation_events.first.destroy while validation_events.count > minimum_size - end - def filtering_old_failed_records(result) - events = validation_eventable.validation_events + if @check_level == "mx" && !result.success && validation_eventable.validation_events.count > 3 + validation_eventable.validation_events.order!(created_at: :asc) + while validation_eventable.validation_events.count > 3 + validation_eventable.validation_events.first.destroy + end + end - destroy_old_validations(events, ValidationEvent::MX_CHECK, 'mx') unless result.success + if @check_level == "mx" && result.success && validation_eventable.validation_events.count > 1 + validation_eventable.validation_events.order!(created_at: :asc) + while validation_eventable.validation_events.count > 1 + validation_eventable.validation_events.first.destroy + end + end - destroy_old_validations(events, ValidationEvent::REDEEM_EVENTS_COUNT_BY_LEVEL[:mx], 'mx') if result.success - - destroy_old_validations(events, ValidationEvent::REDEEM_EVENTS_COUNT_BY_LEVEL[:smtp], 'smtp') + if @check_level == "smtp" && validation_eventable.validation_events.count > 1 + validation_eventable.validation_events.order!(created_at: :asc) + while validation_eventable.validation_events.count > 1 + validation_eventable.validation_events.first.destroy + end + end end def save_result(result)