From 9ae85f3d744dc17d3c9f35990cc2fec61bc7a33b Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Fri, 5 Jun 2020 17:21:43 +0500 Subject: [PATCH] Add verification methods --- app/models/concerns/email_checkable.rb | 4 ++-- app/models/email_address_verification.rb | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) 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