28 lines
507 B
Ruby
28 lines
507 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Users
|
||
|
module EmailVerification
|
||
|
class BaseService
|
||
|
VALID_ATTRS = %i[unlock_token confirmation_token].freeze
|
||
|
|
||
|
def initialize(attr:)
|
||
|
@attr = attr
|
||
|
|
||
|
validate_attr!
|
||
|
end
|
||
|
|
||
|
protected
|
||
|
|
||
|
attr_reader :attr, :token
|
||
|
|
||
|
def validate_attr!
|
||
|
raise ArgumentError, 'Invalid attribute' unless attr.in?(VALID_ATTRS)
|
||
|
end
|
||
|
|
||
|
def digest
|
||
|
Devise.token_generator.digest(User, attr, token)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|