allow field list for datatables (WIP)
This commit is contained in:
+1
-1
@@ -25,7 +25,7 @@ public interface ReadExtraDataAndReportingService {
|
|||||||
void updateExtraData(String type, String set, Long id,
|
void updateExtraData(String type, String set, Long id,
|
||||||
Map<String, String> queryParams);
|
Map<String, String> queryParams);
|
||||||
|
|
||||||
String retrieveDataTable(String datatable, String sqlSearch, String sqlOrder);
|
String retrieveDataTable(String datatable, String sqlFields, String sqlSearch, String sqlOrder);
|
||||||
|
|
||||||
Response processPentahoRequest(String reportName, String outputType,
|
Response processPentahoRequest(String reportName, String outputType,
|
||||||
Map<String, String> queryParams);
|
Map<String, String> queryParams);
|
||||||
|
|||||||
+22
-16
@@ -368,10 +368,18 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String retrieveDataTable(String datatable, String sqlSearch, String sqlOrder) {
|
public String retrieveDataTable(String datatable, String sqlFields,
|
||||||
|
String sqlSearch, String sqlOrder) {
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
|
|
||||||
String sql = "select * from " + datatable;
|
String sql = "select ";
|
||||||
|
if (sqlFields != null)
|
||||||
|
sql = sql + sqlFields;
|
||||||
|
else
|
||||||
|
sql = sql + " * ";
|
||||||
|
|
||||||
|
sql = sql + " from " + datatable;
|
||||||
|
|
||||||
if (sqlSearch != null)
|
if (sqlSearch != null)
|
||||||
sql = sql + " where " + sqlSearch;
|
sql = sql + " where " + sqlSearch;
|
||||||
if (sqlOrder != null)
|
if (sqlOrder != null)
|
||||||
@@ -411,8 +419,8 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
rSize = row.size();
|
rSize = row.size();
|
||||||
for (int j = 0; j < rSize; j++) {
|
for (int j = 0; j < rSize; j++) {
|
||||||
|
|
||||||
writer.append('\"' + columnHeaders.get(j).getColumnName() + '\"'
|
writer.append('\"' + columnHeaders.get(j).getColumnName()
|
||||||
+ ": ");
|
+ '\"' + ": ");
|
||||||
currColType = columnHeaders.get(j).getColumnType();
|
currColType = columnHeaders.get(j).getColumnType();
|
||||||
currVal = row.get(j);
|
currVal = row.get(j);
|
||||||
if (currVal != null) {
|
if (currVal != null) {
|
||||||
@@ -431,24 +439,22 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
writer.append(",\n");
|
writer.append(",\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i < (data.size() - 1)) writer.append("},");
|
if (i < (data.size() - 1))
|
||||||
else writer.append("}");
|
writer.append("},");
|
||||||
|
else
|
||||||
|
writer.append("}");
|
||||||
}
|
}
|
||||||
|
|
||||||
writer.append("\n]");
|
writer.append("\n]");
|
||||||
return writer.toString();
|
return writer.toString();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
JSONObject js = null;
|
* JSONObject js = null; try { js = new JSONObject(writer.toString()); }
|
||||||
try {
|
* catch (JSONException e) { throw new WebApplicationException(Response
|
||||||
js = new JSONObject(writer.toString());
|
* .status(Status.BAD_REQUEST).entity("JSON body is wrong") .build()); }
|
||||||
} catch (JSONException e) {
|
*
|
||||||
throw new WebApplicationException(Response
|
* return js.toString();
|
||||||
.status(Status.BAD_REQUEST).entity("JSON body is wrong")
|
*/
|
||||||
.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
return js.toString();*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,13 +43,14 @@ public class DataTableApiResource {
|
|||||||
@Consumes({MediaType.APPLICATION_JSON})
|
@Consumes({MediaType.APPLICATION_JSON})
|
||||||
@Produces({MediaType.APPLICATION_JSON})
|
@Produces({MediaType.APPLICATION_JSON})
|
||||||
public String extraData(@PathParam("datatable") final String datatable,
|
public String extraData(@PathParam("datatable") final String datatable,
|
||||||
|
@QueryParam("sqlFields") final String sqlFields,
|
||||||
@QueryParam("sqlSearch") final String sqlSearch,
|
@QueryParam("sqlSearch") final String sqlSearch,
|
||||||
@QueryParam("sqlOrder") final String sqlOrder,
|
@QueryParam("sqlOrder") final String sqlOrder,
|
||||||
@Context final UriInfo uriInfo) {
|
@Context final UriInfo uriInfo) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
//GenericResultsetData result = this.readExtraDataAndReportingService.retrieveDataTable(datatable);
|
//GenericResultsetData result = this.readExtraDataAndReportingService.retrieveDataTable(datatable);
|
||||||
return this.readExtraDataAndReportingService.retrieveDataTable(datatable, sqlSearch, sqlOrder);
|
return this.readExtraDataAndReportingService.retrieveDataTable(datatable, sqlFields, sqlSearch, sqlOrder);
|
||||||
|
|
||||||
//boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
//boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||||
//return this.apiDataConversionService.convertGenericResultsetDataToJson(prettyPrint, result);
|
//return this.apiDataConversionService.convertGenericResultsetDataToJson(prettyPrint, result);
|
||||||
|
|||||||
Reference in New Issue
Block a user