Files
grecia/app/models/verification/email.rb
Javi Martín 2fdfefe55d Use Verification::Email.valid_token? instead of .find
This way it's more obvious that the method is supposed to return a
boolean. When upgrading rubocop, we get a `Naming/PredicateMethod` error
due to `.find` returning a boolean.
2025-11-05 14:27:11 +01:00

33 lines
821 B
Ruby

class Verification::Email
include ActiveModel::Model
attr_accessor :verified_user, :recipient, :plain_token, :encrypted_token
validates :verified_user, presence: true
validates :recipient, presence: true
def initialize(verified_user)
@verified_user = verified_user
@recipient = @verified_user&.email
end
def save
return false unless valid?
generate_token
user.update!(email_verification_token: @plain_token)
end
def user
User.find_by(document_number: verified_user.document_number)
end
def generate_token
@plain_token, @encrypted_token = Devise.token_generator.generate(User, :email_verification_token)
end
def self.valid_token?(user, token)
Devise.token_generator.digest(User, :email_verification_token, user.email_verification_token) == token
end
end