Added Content-Location for CkanPackage
This commit is contained in:
parent
47caed1e16
commit
e3dcaae93a
|
@ -9,12 +9,15 @@ import javax.ws.rs.core.Response.Status;
|
|||
import org.gcube.gcat.api.GCatConstants;
|
||||
import org.gcube.gcat.api.interfaces.CRUD;
|
||||
import org.gcube.gcat.persistence.ckan.CKAN;
|
||||
import org.gcube.gcat.persistence.ckan.CKANPackage;
|
||||
|
||||
/**
|
||||
* @author Luca Frosini (ISTI - CNR)
|
||||
*/
|
||||
public class REST<C extends CKAN> extends BaseREST implements CRUD<Response,Response> {
|
||||
|
||||
protected static final String CONTENT_LOCATION_HEADER = "Content-Location";
|
||||
|
||||
protected final String COLLECTION_PARAMETER;
|
||||
protected final String ID_PARAMETER;
|
||||
protected final Class<C> reference;
|
||||
|
@ -43,6 +46,10 @@ public class REST<C extends CKAN> extends BaseREST implements CRUD<Response,Resp
|
|||
return ckan.list(limit, offset);
|
||||
}
|
||||
|
||||
protected ResponseBuilder addContentLocation(ResponseBuilder responseBuilder, String url) {
|
||||
return responseBuilder.header(CONTENT_LOCATION_HEADER, url);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Response create(String json) {
|
||||
setCalledMethod("POST /" + COLLECTION_PARAMETER);
|
||||
|
@ -51,6 +58,9 @@ public class REST<C extends CKAN> extends BaseREST implements CRUD<Response,Resp
|
|||
|
||||
ResponseBuilder responseBuilder = Response.status(Status.CREATED).entity(ret);
|
||||
responseBuilder = addLocation(responseBuilder, ckan.getName());
|
||||
if(ckan instanceof CKANPackage) {
|
||||
addContentLocation(responseBuilder, ((CKANPackage) ckan).getRecordURL());
|
||||
}
|
||||
return responseBuilder.type(GCatConstants.APPLICATION_JSON_CHARSET_UTF_8).build();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue