internetee-registry/app/models/email_address_verification.rb
2020-07-08 17:09:40 +05:00

40 lines
945 B
Ruby

class EmailAddressVerification < ApplicationRecord
RECENTLY_VERIFIED_PERIOD = 1.month
scope :not_verified_recently, lambda {
where('verified_at IS NULL or verified_at < ?', verification_period)
}
scope :verified_recently, lambda {
where('verified_at IS NOT NULL and verified_at >= ?', verification_period)
}
def recently_verified?
verified_at.present? &&
verified_at > verification_period
end
def verification_period
self.class.verification_period
end
def self.verification_period
Time.zone.now - RECENTLY_VERIFIED_PERIOD
end
def verify
# media = success ? :mx : :smtp
media = :mx
validation_request = Truemail.validate(email, with: media)
if validation_request.result.success
update(verified_at: Time.zone.now,
success: true)
else
update(verified_at: nil,
success: false)
end
validation_request.result.success
end
end