package br.com.centralit.citsmart.rest.bean;
import java.sql.Timestamp;
import javax.servlet.http.HttpSession;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.citframework.dto.IDto;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilDatas;
public class RestSessionDTO implements IDto {
private static final long serialVersionUID = -4117354478284577409L;
private HttpSession httpSession;
private Timestamp creation;
private long maxTime;
public HttpSession getHttpSession() {
return httpSession;
}
public void setHttpSession(final HttpSession httpSession) {
this.httpSession = httpSession;
}
public Timestamp getCreation() {
return creation;
}
public void setCreation(final Timestamp creation) {
this.creation = creation;
}
public long getMaxTime() {
return maxTime;
}
public void setMaxTime(final long maxTime) {
this.maxTime = maxTime;
}
public String getSessionID() {
if (httpSession != null) {
return httpSession.getId();
} else {
return null;
}
}
public boolean isValid() {
if (httpSession == null) {
return false;
}
long tempo;
try {
tempo = UtilDatas.calculaDiferencaTempoEmMilisegundos(UtilDatas.getDataHoraAtual(), creation) / 1000;
} catch (final Exception e) {
e.printStackTrace();
return false;
}
return tempo <= maxTime;
}
public UsuarioDTO getUser() {
if (!this.isValid()) {
return null;
}
return (UsuarioDTO) this.getHttpSession().getAttribute(Constantes.getValue("USUARIO_SESSAO") + "_CITCORPORE");
}
public Integer getUserId() {
final UsuarioDTO userDto = this.getUser();
if (userDto == null) {
return null;
}
return userDto.getIdUsuario();
}
public Integer getDptoId() {
final UsuarioDTO userDto = this.getUser();
if (userDto == null) {
return null;
}
return userDto.getIdUnidade();
}
}