package org.opentosca.csarrepo.rest.resource;
import java.util.LinkedList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.opentosca.csarrepo.rest.model.RootEntry;
import org.opentosca.csarrepo.rest.model.SimpleXLink;
import org.opentosca.csarrepo.rest.util.LinkBuilder;
@Path("")
public class RootResource {
private static final Logger LOGGER = LogManager.getLogger(RootResource.class);
@Context
UriInfo uriInfo;
@GET
@Produces(MediaType.APPLICATION_XML)
public Response getRoot() {
List<SimpleXLink> links = new LinkedList<SimpleXLink>();
links.add(LinkBuilder.selfLink(uriInfo));
links.add(new SimpleXLink(LinkBuilder.linkToCsarList(uriInfo), "csars"));
links.add(new SimpleXLink(LinkBuilder.linkToWineryList(uriInfo), "winery"));
links.add(new SimpleXLink(LinkBuilder.linkToOpenToscaList(uriInfo), "opentosca"));
RootEntry rootEntry = new RootEntry(links);
return Response.ok(rootEntry).build();
}
@Path("/csar")
public Object getCsars() {
return new CsarListResource(uriInfo);
}
@Path("/winery")
public Object getWineries() {
return new WineryListResource(uriInfo);
}
@Path("/opentosca")
public Object getOpenToscas() {
return new OpenToscaListResource(uriInfo);
}
}