Files
new-life-songs/src/main/groovy/com/jdbernard/nlsongs/model/Token.groovy
2015-03-07 14:16:52 -06:00

34 lines
999 B
Groovy

package com.jdbernard.nlsongs.model
public class Token implements Serializable {
public static final long EXPIRY_WINDOW = 1000 * 60 * 60 * 24;
String token
User user
Date expires
public Token(Map namedArgs) {
if (!namedArgs.user) throw new IllegalArgumentException(
"Cannot create Token object: missing user property.")
if (namedArgs.expire) this.expires = namedArgs.expires
else this.expires = new Date((new Date()).time + EXPIRY_WINDOW)
if (namedArgs.token) this.token = namedArgs.token
else this.token = UUID.randomUUID().toString() }
public Token(User user) { this([user: user]) }
public void refresh() { this.expires = new Date((new Date()).time + EXPIRY_WINDOW) }
@Override
public boolean equals(Object thatObj) {
if (thatObj == null) return false
if (!(thatObj instanceof Token)) return false
Token that = (Token) thatObj
return (this.token == that?.token) }
}