package be.xhibit.teletask.webapp.rest.ota;
import be.xhibit.teletask.model.spec.Function;
import org.joda.time.LocalDateTime;
import org.joda.time.format.ISODateTimeFormat;
import java.util.concurrent.TimeUnit;
public class TimedOneTimeAccessTokenImpl extends OneTimeAccessTokenSupport implements TimedOneTimeAccessToken {
private final LocalDateTime validUntil;
public TimedOneTimeAccessTokenImpl(Function function, int number, String state) {
super(function, number, state);
String minutes = System.getProperty("ota.minutes", String.valueOf(TimeUnit.HOURS.toMinutes(8)));
this.validUntil = LocalDateTime.now().plusMinutes(Integer.valueOf(minutes));
}
public LocalDateTime getValidUntil() {
return this.validUntil;
}
@Override
public String getValidTime() {
return ISODateTimeFormat.dateHourMinute().print(this.getValidUntil());
}
@Override
public boolean isValid() {
return LocalDateTime.now().isBefore(this.getValidUntil());
}
@Override
public String toString() {
return "TimedOneTimeAccessToken{" +
"token='" + this.getToken() + '\'' +
", function=" + this.getFunction() +
", number=" + this.getNumber() +
", state='" + this.getState() + '\'' +
", validUntil=" + this.getValidUntil() +
'}';
}
}