package ua.sergiishapoval.carrental.command.user;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ua.sergiishapoval.carrental.command.CommandTemplate;
import ua.sergiishapoval.carrental.dao.DaoFactory;
import ua.sergiishapoval.carrental.dao.DaoUser;
import ua.sergiishapoval.carrental.model.User;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.SQLException;
/**
* Created by Сергей on 27.12.2014.
*/
public class UserInfoCommand extends CommandTemplate {
private static final Logger logger = LoggerFactory.getLogger(UserInfoCommand.class);
@Override
public void execute(HttpServletRequest request, HttpServletResponse response) {
if (isAccessNotPermitted(request, response)) return;
try {
int userId = Integer.parseInt(request.getParameter("id"));
DaoUser daoUser = DaoFactory.getDaoUser();
User userChosen = daoUser.findById(userId);
/*handle request on not existing users start*/
if (userChosen.getEmail() == null) {
infoRedirect(request, response, "USER_BY_ID_REQUEST_FAILED" );
/*handle request on not existing users end*/
} else {
request.getSession().setAttribute("userInfo", userChosen);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/user" + ".tiles");
requestDispatcher.forward(request, response);
}
} catch (NumberFormatException e) {
infoRedirect(request, response, "USER_BY_ID_REQUEST_FAILED" );
logger.warn("User By ID request Failed", e);
} catch (SQLException e) {
infoRedirect(request, response, "DATABASE_PROBLEM" );
logger.error("Forward", e);
} catch (Exception e) {
logger.error("Forward", e);
}
}
}