Class: Obscured::Doorman::Token

Inherits:
Object
  • Object
show all
Includes:
Mongoid::Document, Mongoid::Timestamps
Defined in:
lib/obscured-doorman/models/token.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.make(opts) ⇒ Object

Raises:



25
26
27
28
29
30
31
32
33
34
# File 'lib/obscured-doorman/models/token.rb', line 25

def make(opts)
  raise Doorman::Error.new(:already_exists, what: 'Token does already exists!') if Token.where(user: opts[:user], type: opts[:type]).exists?

  token = new
  token.user = opts[:user]
  token.type = opts[:type]
  token.token = opts[:token]
  token.expires_at = opts[:expires] if opts[:expires]
  token
end

.make!(opts) ⇒ Object



36
37
38
39
40
# File 'lib/obscured-doorman/models/token.rb', line 36

def make!(opts)
  token = make(opts)
  token.save
  token
end

Instance Method Details

#usable?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/obscured-doorman/models/token.rb', line 48

def usable?
  used_at.nil? && expires_at > DateTime.now
end

#use!Object



43
44
45
46
# File 'lib/obscured-doorman/models/token.rb', line 43

def use!
  self.used_at = DateTime.now
  save
end

#used?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/obscured-doorman/models/token.rb', line 52

def used?
  !used_at.nil?
end