just adding simple search and ordering to datatable api (WIP)

This commit is contained in:
John Woodlock
2012-08-16 17:10:35 +10:00
parent 32668987d0
commit 99fbab83b7
3 changed files with 11 additions and 4 deletions
@@ -25,7 +25,7 @@ public interface ReadExtraDataAndReportingService {
void updateExtraData(String type, String set, Long id,
Map<String, String> queryParams);
String retrieveDataTable(String datatable);
String retrieveDataTable(String datatable, String sqlSearch, String sqlOrder);
Response processPentahoRequest(String reportName, String outputType,
Map<String, String> queryParams);
@@ -368,11 +368,15 @@ public class ReadExtraDataAndReportingServiceImpl implements
}
@Override
public String retrieveDataTable(String datatable) {
public String retrieveDataTable(String datatable, String sqlSearch, String sqlOrder) {
long startTime = System.currentTimeMillis();
String sql = "select * from " + datatable;
if (sqlSearch != null)
sql = sql + " where " + sqlSearch;
if (sqlOrder != null)
sql = sql + " order by " + sqlOrder;
GenericResultsetData result = fillReportingGenericResultSet(sql);
String jsonString = generateJsonFromGenericResultsetData(result);
@@ -8,6 +8,7 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;
@@ -42,11 +43,13 @@ public class DataTableApiResource {
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public String extraData(@PathParam("datatable") final String datatable,
@QueryParam("sqlSearch") final String sqlSearch,
@QueryParam("sqlOrder") final String sqlOrder,
@Context final UriInfo uriInfo) {
try {
//GenericResultsetData result = this.readExtraDataAndReportingService.retrieveDataTable(datatable);
return this.readExtraDataAndReportingService.retrieveDataTable(datatable);
return this.readExtraDataAndReportingService.retrieveDataTable(datatable, sqlSearch, sqlOrder);
//boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
//return this.apiDataConversionService.convertGenericResultsetDataToJson(prettyPrint, result);