Package gov.nysenate.openleg.api.servlets.admin

Source Code of gov.nysenate.openleg.api.servlets.admin.ReportsServlet

package gov.nysenate.openleg.api.servlets.admin;

import gov.nysenate.openleg.model.admin.Report;
import gov.nysenate.openleg.model.admin.ReportDAO;
import gov.nysenate.openleg.model.admin.ReportError;
import gov.nysenate.openleg.model.admin.ReportObservation;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.log4j.Logger;

/**
* Servlet implementation class ErrorLog
*/
@SuppressWarnings("serial")
public class ReportsServlet extends HttpServlet
{
    private static Logger logger = Logger.getLogger(ReportsServlet.class);

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
  {
      String jspPath;
      String reportIdParam = request.getParameter("id");
      if (reportIdParam == null) {
          List<Report> reportList;
          try {
              reportList = ReportDAO.getReports();
          }
          catch (SQLException e) {
              logger.error(e);
              reportList =  new ArrayList<Report>();
          }
            request.setAttribute("reportList",reportList);
            jspPath = "/admin/reports.jsp";
      }
      else {
            int reportId = Integer.parseInt(reportIdParam);
            List<Report> reportList;
            Report report = null;
            try {
                reportList = ReportDAO.getReports();
                for (Report rep : reportList) {
                    if (rep.getId() == reportId)
                        report = rep;
                }
            }
            catch (SQLException e) {
                logger.error("Error querying reports", e);
            }

            request.setAttribute("report",report);
            jspPath = "/admin/reports-view.jsp";
      }

        getServletContext().getRequestDispatcher(jspPath).forward(request, response);
  }

  public Report getReport(QueryRunner runner, int reportId) throws SQLException {
        Report report = runner.query("SELECT * from report WHERE id = ?", new BeanHandler<Report>(Report.class), reportId);
        return getReport(runner, report);
  }

  public Report getReport(QueryRunner runner, Report report) throws SQLException {
        report.setNewErrors(runner.query("SELECT * FROM report_error WHERE openedAt > DATE_SUB(?, INTERVAL 7 DAY) AND openedAt <= ?", new BeanListHandler<ReportError>(ReportError.class),report.getTime(), report.getTime()));
        report.setClosedErrors(runner.query("SELECT * FROM report_error WHERE closedAt > DATE_SUB(?, INTERVAL 7 DAY) AND closedAt <= ?", new BeanListHandler<ReportError>(ReportError.class),report.getTime(), report.getTime()));
        report.setOpenErrors(runner.query("SELECT * FROM report_error WHERE openedAt < ? AND (closedAt > ? OR closedAt IS NULL)", new BeanListHandler<ReportError>(ReportError.class), report.getTime(), report.getTime()));
        report.setObservations(runner.query("SELECT * FROM report_observation WHERE reportId = ? ORDER BY oid", new BeanListHandler<ReportObservation>(ReportObservation.class), report.getId()));
        return report;
  }
}
TOP

Related Classes of gov.nysenate.openleg.api.servlets.admin.ReportsServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.