Sha256: 947c92c3fbd71dd3126dd9417f3a266f8459232a821f1e428614898d383e133e

Contents?: true

Size: 664 Bytes

Versions: 13

Compression:

Stored size: 664 Bytes

Contents

class CodeManager::Confirmation < CodeManager
  # @return [CodeType]
  def self.code_type
    @code_type ||= CodeType.find_by!(slug: 'confirmation')
  end

  # @param [User] user
  def self.code_for_user(user)
    code = code_type.codes.active.find_by(user: user)
    if code.nil?
      code = code_type.codes.create(user: user, payload: user.email)
    end
    code
  end

  def code_is_valid?
    return false if @code.nil?
    @code.active? && @code.code_type == self.class.code_type
  end

  def activate
    return if @code.quantity < 1
    @code.decrement!(:quantity)
    @code.user.update email_confirmed: true if @code.payload == @code.user.email
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
biovision-base-0.22.180920.0 app/services/code_manager/confirmation.rb
biovision-base-0.21.180812.0 app/services/code_manager/confirmation.rb
biovision-base-0.20.180731.0 app/services/code_manager/confirmation.rb
biovision-base-0.19.180703.1 app/services/code_manager/confirmation.rb
biovision-base-0.17.180619 app/services/code_manager/confirmation.rb
biovision-base-0.15.180502 app/services/code_manager/confirmation.rb
biovision-base-0.15.180415 app/services/code_manager/confirmation.rb
biovision-base-0.14.180326 app/services/code_manager/confirmation.rb
biovision-base-0.11.180127 app/services/code_manager/confirmation.rb
biovision-base-0.9.171227 app/services/code_manager/confirmation.rb
biovision-base-0.8.171029 app/services/code_manager/confirmation.rb
biovision-base-0.8.170916 app/services/code_manager/confirmation.rb
biovision-base-0.7.170709 app/services/code_manager/confirmation.rb