package ua.sergiishapoval.carrental.command.order.show;
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.DaoOrder;
import ua.sergiishapoval.carrental.model.Order;
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 ShowOrderCommandTemplate extends CommandTemplate {
private static final Logger logger = LoggerFactory.getLogger(ShowOrderCommandTemplate.class);
@Override
public void execute(HttpServletRequest request, HttpServletResponse response) {
if (isAccessNotPermitted(request, response)) return;
try {
int orderId = Integer.parseInt(request.getParameter("id"));
DaoOrder daoOrder = DaoFactory.getDaoOrder();
Order orderChosen = daoOrder.getDataById(orderId);
if (orderChosen.getBrand() == null) {
infoRedirect(request, response, "ORDER_BY_ID_REQUEST_FAILED" );
} else {
request.getSession().setAttribute("order", orderChosen);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/order" + ".tiles");
requestDispatcher.forward(request, response);
}
} catch (NumberFormatException e) {
infoRedirect(request, response, "ORDER_BY_ID_REQUEST_FAILED" );
logger.warn("WrongAccessTry", e);
} catch (SQLException e) {
infoRedirect(request, response, "DATABASE_PROBLEM" );
logger.error("DBError", e);
} catch (Exception e) {
logger.error("Forward", e);
}
}
}