//package com.nvarghese.beowulf.smf.scan.resources;
//
//import java.net.URI;
//
//import javax.ws.rs.GET;
//import javax.ws.rs.Path;
//import javax.ws.rs.PathParam;
//import javax.ws.rs.Produces;
//import javax.ws.rs.WebApplicationException;
//import javax.ws.rs.core.Context;
//import javax.ws.rs.core.MediaType;
//import javax.ws.rs.core.Response;
//import javax.ws.rs.core.UriBuilder;
//import javax.ws.rs.core.UriInfo;
//
//import org.apache.log4j.Logger;
//import org.bson.types.ObjectId;
//
//import com.ivizsecurity.verimo.buttercup.core.scan.ScanAdapter;
//import com.ivizsecurity.verimo.buttercup.exceptions.ScanNotFoundException;
//import com.ivizsecurity.verimo.buttercup.exceptions.ScanRedirectException;
//import com.ivizsecurity.verimo.buttercup.model.jaxb.summaryinfo.Summaries;
//import com.ivizsecurity.verimo.buttercup.transformers.SummariesTransformer;
//import com.ivizsecurity.verimo.scanner.scan.reportingex.app.generalcategory.ReportElementSummary;
//import com.sun.jersey.api.NotFoundException;
//
///**
// * Resource resposible for providing summary information corresponding to a scan ID.
// * @author deepak
// *
// */
//
//@Path("/scan/{id}/summary")
//public class SummaryResource {
//
// @Context UriInfo uriInfo;
//
// private static Logger logger = Logger.getLogger(SummaryResource.class);
//
// @GET
// @Produces(MediaType.APPLICATION_XML)
// public Summaries getScanSummary(@PathParam("id") String id) {
//
// logger.debug("Start preparing scan summary for the id: " + id);
//
// Summaries summaries = null;
//
// ObjectId objectId = null;
//
// if (ObjectId.isValid(id)) {
// objectId = new ObjectId(id);
// try {
// summaries = prepareResponse(objectId);
// } catch (ScanRedirectException e) {
// UriBuilder ub = uriInfo.getBaseUriBuilder();
// URI absURI = uriInfo.getAbsolutePath();
// URI redirectURI = ub.scheme(absURI.getScheme())
// .path(absURI.getPath())
// .port(absURI.getPort())
// .host(e.getRedirect())
// .build();
//
// logger.info(e.getMessage());
// throw new WebApplicationException(Response.created(redirectURI)
// .status(302)
// .build());
//
// } catch (ScanNotFoundException e) {
// throw new NotFoundException("Scan - id '" + id + "' is not found ");
// }
// } else {
// throw new WebApplicationException(400);
// }
//
// if (summaries != null) {
// return summaries;
// } else {
// throw new WebApplicationException(Response.status(500)
// .entity("Server error while fetching summaries")
// .build());
// }
//
// }
//
// /**
// * This method prepares Summaries Object corresponding to a Object id.
// * @param ObjectId
// * @return Summaries
// * @throws ScanNotFoundException
// * @throws ScanRedirectException
// */
// private Summaries prepareResponse(ObjectId id) throws ScanRedirectException, ScanNotFoundException {
//
// logger.debug("Preparing response for id: " + id.toString());
//
// Summaries summaries = null;
// ReportElementSummary reportElementSummary = ScanAdapter.getSummary(id);
//
// if (reportElementSummary != null) {
//
// summaries = SummariesTransformer.doTransform(reportElementSummary);
// }
//
// return summaries;
//
// }
//
//}