diff --git a/app/models/concerns/email_checkable.rb b/app/models/concerns/email_checkable.rb index 67975e65a..3edb9614d 100644 --- a/app/models/concerns/email_checkable.rb +++ b/app/models/concerns/email_checkable.rb @@ -3,12 +3,12 @@ module Concerns extend ActiveSupport::Concern def email_verification - EmailAddressVerification.find_by(email: self.email) + EmailAddressVerification.find_or_create_by(email: self.email) end def billing_email_verification if self.attribute_names.include?('billing_email') - EmailAddressVerification.find_by(email: self.billing_email) + EmailAddressVerification.find_or_create_by(email: self.billing_email) else nil end diff --git a/app/models/email_address_verification.rb b/app/models/email_address_verification.rb index 15544e6e4..4fa523764 100644 --- a/app/models/email_address_verification.rb +++ b/app/models/email_address_verification.rb @@ -1,4 +1,14 @@ class EmailAddressVerification < ApplicationRecord + RECENTLY_VERIFIED_PERIOD = 1.month + def recently_verified? + verified_at > Time.zone.now - RECENTLY_VERIFIED_PERIOD + end + + def verify + validation_request = Truemail.validate(email) + + update(verified_at: Time.zone.now) if validation_request.result.success + end end