49 lines
1.8 KiB
Java
49 lines
1.8 KiB
Java
package org.gcube.data.publishing.accounting.service.resources;
|
|
|
|
import javax.validation.constraints.NotNull;
|
|
import javax.ws.rs.GET;
|
|
import javax.ws.rs.Path;
|
|
import javax.ws.rs.PathParam;
|
|
import javax.ws.rs.Produces;
|
|
import javax.ws.rs.core.Response;
|
|
|
|
import org.gcube.accounting.analytics.persistence.AccountingPersistenceQuery;
|
|
import org.gcube.accounting.analytics.persistence.AccountingPersistenceQueryFactory;
|
|
import org.gcube.data.publishing.accounting.service.AccountingResource;
|
|
import org.gcube.data.publishing.accounting.service.AccountingServiceInitializer;
|
|
import org.gcube.smartgears.annotations.ManagedBy;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
/**
|
|
* @author Alessandro Pieve (alessandro.pieve@isti.cnr.it)
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
*/
|
|
@ManagedBy(AccountingServiceInitializer.class)
|
|
@Path(ResourceQuery.QUERY_PATH_PART)
|
|
public class ResourceQuery {
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(ResourceQuery.class);
|
|
|
|
public static final String QUERY_PATH_PART = "query";
|
|
public static final String RECORD_PATH_PART = "record";
|
|
|
|
public static final String TYPE_PATH_PART = "type";
|
|
public static final String RECORD_ID_PATH_PART = "recordID";
|
|
|
|
@GET
|
|
@Path(RECORD_PATH_PART + "/{" + TYPE_PATH_PART + "}/{" + RECORD_ID_PATH_PART + "}/")
|
|
@Produces(AccountingResource.APPLICATION_JSON_CHARSET_UTF_8)
|
|
public Response get(@NotNull @PathParam(TYPE_PATH_PART) String type,
|
|
@NotNull @PathParam(RECORD_ID_PATH_PART) String recordId) throws Exception {
|
|
|
|
log.debug("Requested {} having ID {}", type, recordId);
|
|
AccountingPersistenceQuery accountingPersistenceQuery = AccountingPersistenceQueryFactory.getInstance();
|
|
|
|
String record = accountingPersistenceQuery.getRecord(recordId, type);
|
|
return Response.status(200).entity(record).type(AccountingResource.APPLICATION_JSON_CHARSET_UTF_8).build();
|
|
|
|
}
|
|
|
|
}
|