From 99fbab83b76b87a3ab83a701de46d7b045d7027f Mon Sep 17 00:00:00 2001 From: John Woodlock Date: Thu, 16 Aug 2012 17:10:35 +1000 Subject: [PATCH] just adding simple search and ordering to datatable api (WIP) --- .../platform/ReadExtraDataAndReportingService.java | 2 +- .../platform/ReadExtraDataAndReportingServiceImpl.java | 8 ++++++-- .../org/mifosng/platform/api/DataTableApiResource.java | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingService.java b/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingService.java index 3df452dc1..98b916a24 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingService.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingService.java @@ -25,7 +25,7 @@ public interface ReadExtraDataAndReportingService { void updateExtraData(String type, String set, Long id, Map queryParams); - String retrieveDataTable(String datatable); + String retrieveDataTable(String datatable, String sqlSearch, String sqlOrder); Response processPentahoRequest(String reportName, String outputType, Map queryParams); diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingServiceImpl.java index d725fa0b5..da3c6fb10 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/ReadExtraDataAndReportingServiceImpl.java @@ -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); diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/DataTableApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/DataTableApiResource.java index 3d45ea6a3..1baeaa834 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/DataTableApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/DataTableApiResource.java @@ -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);