package org.gcube.gcat.rest; import javax.ws.rs.DELETE; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import javax.xml.ws.WebServiceException; import org.gcube.gcat.ResourceInitializer; import org.gcube.gcat.annotation.PURGE; import org.gcube.gcat.api.GCatConstants; import org.gcube.gcat.persistence.ckan.CKANPackageTrash; /** * @author Luca Frosini (ISTI - CNR) */ @Path(Trash.TRASH) public class Trash extends BaseREST implements org.gcube.gcat.api.interfaces.Trash { @GET @Produces(ResourceInitializer.APPLICATION_JSON_CHARSET_UTF_8) @Override public String list(@QueryParam(GCatConstants.OWN_ONLY_QUERY_PARAMETER) @DefaultValue("true") Boolean ownOnly) throws WebServiceException { CKANPackageTrash ckanPackageTrash = new CKANPackageTrash(); ckanPackageTrash.setOwnOnly(ownOnly); return ckanPackageTrash.list(); } @DELETE @PURGE @Override public Response empty(@QueryParam(GCatConstants.OWN_ONLY_QUERY_PARAMETER) @DefaultValue("true") Boolean ownOnly) throws WebServiceException { Thread thread = new Thread(new Runnable() { @Override public void run() { CKANPackageTrash ckanPackageTrash = new CKANPackageTrash(); ckanPackageTrash.setOwnOnly(ownOnly); ckanPackageTrash.empty(); } }); thread.start(); return Response.status(Status.ACCEPTED).build(); } }