package codeine.servlets.api_servlets; import java.io.PrintWriter; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import codeine.api.NodeGetter; import codeine.api.NodeWithMonitorsInfo; import codeine.model.Constants; import codeine.servlet.AbstractApiServlet; import com.google.inject.Inject; public class NodesCsvApiServlet extends AbstractApiServlet { private static final Logger log = Logger.getLogger(NodesCsvApiServlet.class); private static final long serialVersionUID = 1L; @Inject private NodeGetter nodeGetter; @Override protected boolean checkPermissions(HttpServletRequest request) { return canReadProject(request); } @Override protected void myGet(HttpServletRequest request, HttpServletResponse response) { log.info("myGet"); String project = getProjectName(request); List<NodeWithMonitorsInfo> nodes = nodeGetter.getNodes(project); response.setContentType("text/csv"); response.setHeader("Content-Disposition", "attachment; filename=nodes." + project + ".csv"); PrintWriter writer = getWriter(response); writer.println("name,alias"); for (NodeWithMonitorsInfo n : nodes) { writer.println(n.name() + "," + n.alias()); } } private String getProjectName(HttpServletRequest request) { String projectName = getParameter(request, Constants.UrlParameters.PROJECT_NAME); return projectName; } }