from MIFOSX-38, tidy up serialisation around additional data and reports.2
This commit is contained in:
+16
-23
@@ -192,8 +192,6 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
|
|
||||||
private GenericResultsetData fillReportingGenericResultSet(final String sql) {
|
private GenericResultsetData fillReportingGenericResultSet(final String sql) {
|
||||||
|
|
||||||
GenericResultsetData result = new GenericResultsetData();
|
|
||||||
|
|
||||||
Connection db_connection = null;
|
Connection db_connection = null;
|
||||||
Statement db_statement = null;
|
Statement db_statement = null;
|
||||||
try {
|
try {
|
||||||
@@ -201,19 +199,19 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
db_statement = db_connection.createStatement();
|
db_statement = db_connection.createStatement();
|
||||||
ResultSet rs = db_statement.executeQuery(sql);
|
ResultSet rs = db_statement.executeQuery(sql);
|
||||||
|
|
||||||
|
List<ResultsetColumnHeader> columnHeaders = new ArrayList<ResultsetColumnHeader>();
|
||||||
|
List<ResultsetDataRow> resultsetDataRows = new ArrayList<ResultsetDataRow>();
|
||||||
|
|
||||||
ResultSetMetaData rsmd = rs.getMetaData();
|
ResultSetMetaData rsmd = rs.getMetaData();
|
||||||
String columnName = null;
|
String columnName = null;
|
||||||
String columnValue = null;
|
String columnValue = null;
|
||||||
List<ResultsetColumnHeader> columnHeaders = new ArrayList<ResultsetColumnHeader>();
|
|
||||||
for (int i = 0; i < rsmd.getColumnCount(); i++) {
|
for (int i = 0; i < rsmd.getColumnCount(); i++) {
|
||||||
ResultsetColumnHeader rsch = new ResultsetColumnHeader();
|
ResultsetColumnHeader rsch = new ResultsetColumnHeader();
|
||||||
rsch.setColumnName(rsmd.getColumnName(i + 1));
|
rsch.setColumnName(rsmd.getColumnName(i + 1));
|
||||||
rsch.setColumnType(rsmd.getColumnTypeName(i + 1));
|
rsch.setColumnType(rsmd.getColumnTypeName(i + 1));
|
||||||
columnHeaders.add(rsch);
|
columnHeaders.add(rsch);
|
||||||
}
|
}
|
||||||
result.setColumnHeaders(columnHeaders);
|
|
||||||
|
|
||||||
List<ResultsetDataRow> resultsetDataRows = new ArrayList<ResultsetDataRow>();
|
|
||||||
ResultsetDataRow resultsetDataRow;
|
ResultsetDataRow resultsetDataRow;
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
resultsetDataRow = new ResultsetDataRow();
|
resultsetDataRow = new ResultsetDataRow();
|
||||||
@@ -226,16 +224,13 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
resultsetDataRow.setRow(columnValues);
|
resultsetDataRow.setRow(columnValues);
|
||||||
resultsetDataRows.add(resultsetDataRow);
|
resultsetDataRows.add(resultsetDataRow);
|
||||||
}
|
}
|
||||||
result.setData(resultsetDataRows);
|
|
||||||
|
|
||||||
|
return new GenericResultsetData(columnHeaders, resultsetDataRows);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new PlatformDataIntegrityException("error.msg.sql.error",
|
throw new PlatformDataIntegrityException("error.msg.sql.error", e.getMessage(), "Sql: " + sql);
|
||||||
e.getMessage(), "Sql: " + sql);
|
|
||||||
} finally {
|
} finally {
|
||||||
dbClose(db_statement, db_connection);
|
dbClose(db_statement, db_connection);
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getSQLtoRun(final String name, final String type,
|
private String getSQLtoRun(final String name, final String type,
|
||||||
@@ -470,10 +465,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GenericResultsetData fillExtraDataGenericResultSet(String type,
|
private GenericResultsetData fillExtraDataGenericResultSet(final String type, final String set, final Long id) {
|
||||||
String set, Long id) {
|
|
||||||
|
|
||||||
GenericResultsetData result = new GenericResultsetData();
|
|
||||||
|
|
||||||
Connection db_connection = null;
|
Connection db_connection = null;
|
||||||
Statement db_statement1 = null;
|
Statement db_statement1 = null;
|
||||||
@@ -487,11 +479,14 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
|
|
||||||
ResultSet rsmd = db_statement1.executeQuery(sql);
|
ResultSet rsmd = db_statement1.executeQuery(sql);
|
||||||
|
|
||||||
|
List<ResultsetColumnHeader> columnHeaders = null;
|
||||||
|
List<ResultsetDataRow> resultsetDataRows = null;
|
||||||
|
|
||||||
if (rsmd.next()) {
|
if (rsmd.next()) {
|
||||||
|
|
||||||
String fullDatasetName = getFullDatasetName(type, set);
|
String fullDatasetName = getFullDatasetName(type, set);
|
||||||
db_statement2 = db_connection.createStatement();
|
db_statement2 = db_connection.createStatement();
|
||||||
List<ResultsetColumnHeader> columnHeaders = new ArrayList<ResultsetColumnHeader>();
|
columnHeaders = new ArrayList<ResultsetColumnHeader>();
|
||||||
Boolean firstColumn = true;
|
Boolean firstColumn = true;
|
||||||
Integer allowedListId;
|
Integer allowedListId;
|
||||||
String selectFieldList = "";
|
String selectFieldList = "";
|
||||||
@@ -528,7 +523,6 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
}
|
}
|
||||||
columnHeaders.add(rsch);
|
columnHeaders.add(rsch);
|
||||||
} while (rsmd.next());
|
} while (rsmd.next());
|
||||||
result.setColumnHeaders(columnHeaders);
|
|
||||||
|
|
||||||
sql = "select " + selectFieldList + " from `" + type
|
sql = "select " + selectFieldList + " from `" + type
|
||||||
+ "` t left join `" + fullDatasetName
|
+ "` t left join `" + fullDatasetName
|
||||||
@@ -540,7 +534,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
String columnName = null;
|
String columnName = null;
|
||||||
String columnValue = null;
|
String columnValue = null;
|
||||||
List<ResultsetDataRow> resultsetDataRows = new ArrayList<ResultsetDataRow>();
|
resultsetDataRows = new ArrayList<ResultsetDataRow>();
|
||||||
ResultsetDataRow resultsetDataRow;
|
ResultsetDataRow resultsetDataRow;
|
||||||
do {
|
do {
|
||||||
resultsetDataRow = new ResultsetDataRow();
|
resultsetDataRow = new ResultsetDataRow();
|
||||||
@@ -554,13 +548,15 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
resultsetDataRow.setRow(columnValues);
|
resultsetDataRow.setRow(columnValues);
|
||||||
resultsetDataRows.add(resultsetDataRow);
|
resultsetDataRows.add(resultsetDataRow);
|
||||||
} while (rs.next());
|
} while (rs.next());
|
||||||
result.setData(resultsetDataRows);
|
|
||||||
} else {
|
} else {
|
||||||
throw new AdditionalFieldsNotFoundException(type, id);
|
throw new AdditionalFieldsNotFoundException(type, id);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new AdditionalFieldsNotFoundException(type, set);
|
throw new AdditionalFieldsNotFoundException(type, set);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return new GenericResultsetData(columnHeaders, resultsetDataRows);
|
||||||
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new PlatformDataIntegrityException("error.msg.sql.error",
|
throw new PlatformDataIntegrityException("error.msg.sql.error",
|
||||||
e.getMessage(), "Additional Fields Type: " + type
|
e.getMessage(), "Additional Fields Type: " + type
|
||||||
@@ -570,8 +566,6 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
dbClose(db_statement3, null);
|
dbClose(db_statement3, null);
|
||||||
dbClose(db_statement1, db_connection);
|
dbClose(db_statement1, db_connection);
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getFullDatasetName(final String type, final String set) {
|
private String getFullDatasetName(final String type, final String set) {
|
||||||
@@ -780,7 +774,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void dbClose(Statement db_statement, Connection db_connection) {
|
private void dbClose(Statement db_statement, Connection db_connection) {
|
||||||
logger.info("dbClose");
|
logger.debug("dbClose");
|
||||||
try {
|
try {
|
||||||
if (db_statement != null) {
|
if (db_statement != null) {
|
||||||
db_statement.close();
|
db_statement.close();
|
||||||
@@ -791,8 +785,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
db_connection = null;
|
db_connection = null;
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new PlatformDataIntegrityException("error.msg.sql.error",
|
throw new PlatformDataIntegrityException("error.msg.sql.error", e.getMessage(), "Error closing database connection");
|
||||||
e.getMessage(), "Error closing database connection");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -28,7 +28,7 @@ import org.mifosng.platform.api.data.AdditionalFieldsSetData;
|
|||||||
import org.mifosng.platform.api.data.ApiParameterError;
|
import org.mifosng.platform.api.data.ApiParameterError;
|
||||||
import org.mifosng.platform.api.data.EntityIdentifier;
|
import org.mifosng.platform.api.data.EntityIdentifier;
|
||||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||||
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
|
import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService;
|
||||||
import org.mifosng.platform.api.infrastructure.ApiParameterHelper;
|
import org.mifosng.platform.api.infrastructure.ApiParameterHelper;
|
||||||
import org.mifosng.platform.exceptions.PlatformApiDataValidationException;
|
import org.mifosng.platform.exceptions.PlatformApiDataValidationException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -48,7 +48,7 @@ public class AdditionalFieldsApiResource {
|
|||||||
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApiDataConversionService apiDataConversionService;
|
private ApiJsonSerializerService apiJsonSerializerService;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Consumes({MediaType.APPLICATION_JSON})
|
@Consumes({MediaType.APPLICATION_JSON})
|
||||||
@@ -58,7 +58,7 @@ public class AdditionalFieldsApiResource {
|
|||||||
List<AdditionalFieldsSetData> result = this.readExtraDataAndReportingService.retrieveExtraDatasetNames(type);
|
List<AdditionalFieldsSetData> result = this.readExtraDataAndReportingService.retrieveExtraDatasetNames(type);
|
||||||
|
|
||||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||||
return this.apiDataConversionService.convertAdditionalFieldsSetDataToJson(prettyPrint, result.toArray(new AdditionalFieldsSetData[result.size()]));
|
return this.apiJsonSerializerService.serializeAdditionalFieldsSetDataToJson(prettyPrint, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@@ -73,7 +73,7 @@ public class AdditionalFieldsApiResource {
|
|||||||
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveExtraData(type, set, id);
|
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveExtraData(type, set, id);
|
||||||
|
|
||||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||||
return this.apiDataConversionService.convertGenericResultsetDataToJson(prettyPrint, result);
|
return this.apiJsonSerializerService.serializeGenericResultsetDataToJson(prettyPrint, result);
|
||||||
} catch (InvalidSqlException e) {
|
} catch (InvalidSqlException e) {
|
||||||
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
||||||
ApiParameterError error = ApiParameterError.parameterError(
|
ApiParameterError error = ApiParameterError.parameterError(
|
||||||
|
|||||||
@@ -9,17 +9,12 @@ import javax.ws.rs.Path;
|
|||||||
import javax.ws.rs.PathParam;
|
import javax.ws.rs.PathParam;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
import javax.ws.rs.QueryParam;
|
import javax.ws.rs.QueryParam;
|
||||||
import javax.ws.rs.core.Context;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.UriInfo;
|
|
||||||
|
|
||||||
import org.mifosng.platform.InvalidSqlException;
|
import org.mifosng.platform.InvalidSqlException;
|
||||||
import org.mifosng.platform.ReadExtraDataAndReportingService;
|
import org.mifosng.platform.ReadExtraDataAndReportingService;
|
||||||
import org.mifosng.platform.api.data.ApiParameterError;
|
import org.mifosng.platform.api.data.ApiParameterError;
|
||||||
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
|
|
||||||
import org.mifosng.platform.exceptions.PlatformApiDataValidationException;
|
import org.mifosng.platform.exceptions.PlatformApiDataValidationException;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -29,15 +24,11 @@ import org.springframework.stereotype.Component;
|
|||||||
@Scope("singleton")
|
@Scope("singleton")
|
||||||
public class DataTableApiResource {
|
public class DataTableApiResource {
|
||||||
|
|
||||||
private final static Logger logger = LoggerFactory.getLogger(DataTableApiResource.class);
|
// private final static Logger logger = LoggerFactory.getLogger(DataTableApiResource.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ApiDataConversionService apiDataConversionService;
|
|
||||||
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("{datatable}")
|
@Path("{datatable}")
|
||||||
@Consumes({MediaType.APPLICATION_JSON})
|
@Consumes({MediaType.APPLICATION_JSON})
|
||||||
@@ -45,8 +36,9 @@ public class DataTableApiResource {
|
|||||||
public String extraData(@PathParam("datatable") final String datatable,
|
public String extraData(@PathParam("datatable") final String datatable,
|
||||||
@QueryParam("sqlFields") final String sqlFields,
|
@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);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import javax.ws.rs.core.UriInfo;
|
|||||||
|
|
||||||
import org.mifosng.platform.ReadExtraDataAndReportingService;
|
import org.mifosng.platform.ReadExtraDataAndReportingService;
|
||||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||||
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
|
import org.mifosng.platform.api.infrastructure.ApiJsonSerializerService;
|
||||||
import org.mifosng.platform.api.infrastructure.ApiParameterHelper;
|
import org.mifosng.platform.api.infrastructure.ApiParameterHelper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
@@ -33,7 +33,7 @@ public class ReportsApiResource {
|
|||||||
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ApiDataConversionService apiDataConversionService;
|
private ApiJsonSerializerService apiJsonSerializerService;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Consumes({MediaType.APPLICATION_JSON})
|
@Consumes({MediaType.APPLICATION_JSON})
|
||||||
@@ -48,7 +48,7 @@ public class ReportsApiResource {
|
|||||||
if (!exportCsv) {
|
if (!exportCsv) {
|
||||||
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(".", ".", extractedQueryParams);
|
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(".", ".", extractedQueryParams);
|
||||||
|
|
||||||
final String json = this.apiDataConversionService.convertGenericResultsetDataToJson(prettyPrint, result);
|
final String json = this.apiJsonSerializerService.serializeGenericResultsetDataToJson(prettyPrint, result);
|
||||||
|
|
||||||
return Response.ok().entity(json).build();
|
return Response.ok().entity(json).build();
|
||||||
}
|
}
|
||||||
@@ -93,7 +93,7 @@ public class ReportsApiResource {
|
|||||||
|
|
||||||
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(reportName, parameterTypeValue, reportParams);
|
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(reportName, parameterTypeValue, reportParams);
|
||||||
|
|
||||||
final String json = this.apiDataConversionService.convertGenericResultsetDataToJson(prettyPrint, result);
|
final String json = this.apiJsonSerializerService.serializeGenericResultsetDataToJson(prettyPrint, result);
|
||||||
|
|
||||||
return Response.ok().entity(json).type(MediaType.APPLICATION_JSON).build();
|
return Response.ok().entity(json).type(MediaType.APPLICATION_JSON).build();
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -1,5 +1,8 @@
|
|||||||
package org.mifosng.platform.api.data;
|
package org.mifosng.platform.api.data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Immutable data object for 'additional data'.
|
||||||
|
*/
|
||||||
public class AdditionalFieldsSetData {
|
public class AdditionalFieldsSetData {
|
||||||
|
|
||||||
private final Integer id;
|
private final Integer id;
|
||||||
|
|||||||
+8
-13
@@ -1,30 +1,25 @@
|
|||||||
package org.mifosng.platform.api.data;
|
package org.mifosng.platform.api.data;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Immutable data object for generic resultset data.
|
||||||
|
*/
|
||||||
public class GenericResultsetData {
|
public class GenericResultsetData {
|
||||||
|
|
||||||
private List<ResultsetColumnHeader> columnHeaders = new ArrayList<ResultsetColumnHeader>();
|
private final List<ResultsetColumnHeader> columnHeaders;
|
||||||
private List<ResultsetDataRow> data = new ArrayList<ResultsetDataRow>();
|
private final List<ResultsetDataRow> data;
|
||||||
|
|
||||||
public GenericResultsetData() {
|
|
||||||
|
|
||||||
|
public GenericResultsetData(final List<ResultsetColumnHeader> columnHeaders, final List<ResultsetDataRow> resultsetDataRows) {
|
||||||
|
this.columnHeaders = columnHeaders;
|
||||||
|
this.data = resultsetDataRows;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ResultsetColumnHeader> getColumnHeaders() {
|
public List<ResultsetColumnHeader> getColumnHeaders() {
|
||||||
return columnHeaders;
|
return columnHeaders;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setColumnHeaders(List<ResultsetColumnHeader> columnHeaders) {
|
|
||||||
this.columnHeaders = columnHeaders;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ResultsetDataRow> getData() {
|
public List<ResultsetDataRow> getData() {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setData(List<ResultsetDataRow> data) {
|
|
||||||
this.data = data;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
-6
@@ -21,13 +21,11 @@ import org.mifosng.platform.api.commands.RoleCommand;
|
|||||||
import org.mifosng.platform.api.commands.SavingProductCommand;
|
import org.mifosng.platform.api.commands.SavingProductCommand;
|
||||||
import org.mifosng.platform.api.commands.SubmitLoanApplicationCommand;
|
import org.mifosng.platform.api.commands.SubmitLoanApplicationCommand;
|
||||||
import org.mifosng.platform.api.commands.UserCommand;
|
import org.mifosng.platform.api.commands.UserCommand;
|
||||||
import org.mifosng.platform.api.data.AdditionalFieldsSetData;
|
|
||||||
import org.mifosng.platform.api.data.ChargeData;
|
import org.mifosng.platform.api.data.ChargeData;
|
||||||
import org.mifosng.platform.api.data.ClientData;
|
import org.mifosng.platform.api.data.ClientData;
|
||||||
import org.mifosng.platform.api.data.ClientLoanAccountSummaryCollectionData;
|
import org.mifosng.platform.api.data.ClientLoanAccountSummaryCollectionData;
|
||||||
import org.mifosng.platform.api.data.DepositAccountData;
|
import org.mifosng.platform.api.data.DepositAccountData;
|
||||||
import org.mifosng.platform.api.data.DepositProductData;
|
import org.mifosng.platform.api.data.DepositProductData;
|
||||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
|
||||||
import org.mifosng.platform.api.data.GroupData;
|
import org.mifosng.platform.api.data.GroupData;
|
||||||
import org.mifosng.platform.api.data.LoanAccountData;
|
import org.mifosng.platform.api.data.LoanAccountData;
|
||||||
import org.mifosng.platform.api.data.LoanProductData;
|
import org.mifosng.platform.api.data.LoanProductData;
|
||||||
@@ -63,10 +61,6 @@ public interface ApiDataConversionService {
|
|||||||
String convertLoanAccountDataToJson(boolean prettyPrint, Set<String> responseParameters, LoanAccountData loanAccount);
|
String convertLoanAccountDataToJson(boolean prettyPrint, Set<String> responseParameters, LoanAccountData loanAccount);
|
||||||
|
|
||||||
String convertLoanTransactionDataToJson(boolean prettyPrint, Set<String> responseParameters, LoanTransactionData... transactions);
|
String convertLoanTransactionDataToJson(boolean prettyPrint, Set<String> responseParameters, LoanTransactionData... transactions);
|
||||||
|
|
||||||
String convertAdditionalFieldsSetDataToJson(boolean prettyPrint, AdditionalFieldsSetData... additionalFields);
|
|
||||||
|
|
||||||
String convertGenericResultsetDataToJson(boolean prettyPrint, GenericResultsetData result);
|
|
||||||
//
|
//
|
||||||
|
|
||||||
ChargeCommand convertJsonToChargeCommand(Long resourceIdentifier, String json);
|
ChargeCommand convertJsonToChargeCommand(Long resourceIdentifier, String json);
|
||||||
|
|||||||
-30
@@ -37,14 +37,12 @@ import org.mifosng.platform.api.commands.RoleCommand;
|
|||||||
import org.mifosng.platform.api.commands.SavingProductCommand;
|
import org.mifosng.platform.api.commands.SavingProductCommand;
|
||||||
import org.mifosng.platform.api.commands.SubmitLoanApplicationCommand;
|
import org.mifosng.platform.api.commands.SubmitLoanApplicationCommand;
|
||||||
import org.mifosng.platform.api.commands.UserCommand;
|
import org.mifosng.platform.api.commands.UserCommand;
|
||||||
import org.mifosng.platform.api.data.AdditionalFieldsSetData;
|
|
||||||
import org.mifosng.platform.api.data.ApiParameterError;
|
import org.mifosng.platform.api.data.ApiParameterError;
|
||||||
import org.mifosng.platform.api.data.ChargeData;
|
import org.mifosng.platform.api.data.ChargeData;
|
||||||
import org.mifosng.platform.api.data.ClientData;
|
import org.mifosng.platform.api.data.ClientData;
|
||||||
import org.mifosng.platform.api.data.ClientLoanAccountSummaryCollectionData;
|
import org.mifosng.platform.api.data.ClientLoanAccountSummaryCollectionData;
|
||||||
import org.mifosng.platform.api.data.DepositAccountData;
|
import org.mifosng.platform.api.data.DepositAccountData;
|
||||||
import org.mifosng.platform.api.data.DepositProductData;
|
import org.mifosng.platform.api.data.DepositProductData;
|
||||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
|
||||||
import org.mifosng.platform.api.data.GroupData;
|
import org.mifosng.platform.api.data.GroupData;
|
||||||
import org.mifosng.platform.api.data.LoanAccountData;
|
import org.mifosng.platform.api.data.LoanAccountData;
|
||||||
import org.mifosng.platform.api.data.LoanProductData;
|
import org.mifosng.platform.api.data.LoanProductData;
|
||||||
@@ -77,34 +75,6 @@ public class ApiDataConversionServiceImpl implements ApiDataConversionService {
|
|||||||
gsonConverter = new Gson();
|
gsonConverter = new Gson();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String convertGenericResultsetDataToJson(final boolean prettyPrint, final GenericResultsetData result) {
|
|
||||||
GsonBuilder builder = new GsonBuilder();
|
|
||||||
builder.registerTypeAdapter(LocalDate.class, new JodaLocalDateAdapter());
|
|
||||||
builder.registerTypeAdapter(DateTime.class, new JodaDateTimeAdapter());
|
|
||||||
|
|
||||||
if (prettyPrint) {
|
|
||||||
builder.setPrettyPrinting();
|
|
||||||
}
|
|
||||||
Gson gsonDeserializer = builder.create();
|
|
||||||
|
|
||||||
return gsonDeserializer.toJson(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String convertAdditionalFieldsSetDataToJson(final boolean prettyPrint, final AdditionalFieldsSetData... additionalFields) {
|
|
||||||
GsonBuilder builder = new GsonBuilder();
|
|
||||||
builder.registerTypeAdapter(LocalDate.class, new JodaLocalDateAdapter());
|
|
||||||
builder.registerTypeAdapter(DateTime.class, new JodaDateTimeAdapter());
|
|
||||||
if (prettyPrint) {
|
|
||||||
builder.setPrettyPrinting();
|
|
||||||
}
|
|
||||||
Gson gsonDeserializer = builder.create();
|
|
||||||
|
|
||||||
// even if only a single result, its passed back as an array.
|
|
||||||
return gsonDeserializer.toJson(additionalFields);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String convertLoanTransactionDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final LoanTransactionData... transactions) {
|
public String convertLoanTransactionDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final LoanTransactionData... transactions) {
|
||||||
final Set<String> supportedParameters = new HashSet<String>(
|
final Set<String> supportedParameters = new HashSet<String>(
|
||||||
|
|||||||
+8
-2
@@ -3,10 +3,12 @@ package org.mifosng.platform.api.infrastructure;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.mifosng.platform.api.data.AdditionalFieldsSetData;
|
||||||
import org.mifosng.platform.api.data.AppUserData;
|
import org.mifosng.platform.api.data.AppUserData;
|
||||||
import org.mifosng.platform.api.data.AuthenticatedUserData;
|
import org.mifosng.platform.api.data.AuthenticatedUserData;
|
||||||
import org.mifosng.platform.api.data.ConfigurationData;
|
import org.mifosng.platform.api.data.ConfigurationData;
|
||||||
import org.mifosng.platform.api.data.FundData;
|
import org.mifosng.platform.api.data.FundData;
|
||||||
|
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||||
import org.mifosng.platform.api.data.OfficeData;
|
import org.mifosng.platform.api.data.OfficeData;
|
||||||
import org.mifosng.platform.api.data.OfficeTransactionData;
|
import org.mifosng.platform.api.data.OfficeTransactionData;
|
||||||
import org.mifosng.platform.api.data.PermissionData;
|
import org.mifosng.platform.api.data.PermissionData;
|
||||||
@@ -14,6 +16,12 @@ import org.mifosng.platform.api.data.RoleData;
|
|||||||
|
|
||||||
public interface ApiJsonSerializerService {
|
public interface ApiJsonSerializerService {
|
||||||
|
|
||||||
|
String serializeAuthenticatedUserDataToJson(boolean prettyPrint, AuthenticatedUserData authenticatedUserData);
|
||||||
|
|
||||||
|
String serializeGenericResultsetDataToJson(boolean prettyPrint, GenericResultsetData result);
|
||||||
|
|
||||||
|
String serializeAdditionalFieldsSetDataToJson(boolean prettyPrint, Collection<AdditionalFieldsSetData> result);
|
||||||
|
|
||||||
String serializePermissionDataToJson(boolean prettyPrint, Set<String> responseParameters, Collection<PermissionData> permissions);
|
String serializePermissionDataToJson(boolean prettyPrint, Set<String> responseParameters, Collection<PermissionData> permissions);
|
||||||
|
|
||||||
String serializeRoleDataToJson(boolean prettyPrint, Set<String> responseParameters, Collection<RoleData> roles);
|
String serializeRoleDataToJson(boolean prettyPrint, Set<String> responseParameters, Collection<RoleData> roles);
|
||||||
@@ -24,8 +32,6 @@ public interface ApiJsonSerializerService {
|
|||||||
|
|
||||||
String serializeAppUserDataToJson(boolean prettyPrint, Set<String> responseParameters, AppUserData user);
|
String serializeAppUserDataToJson(boolean prettyPrint, Set<String> responseParameters, AppUserData user);
|
||||||
|
|
||||||
String serializeAuthenticatedUserDataToJson(boolean prettyPrint, AuthenticatedUserData authenticatedUserData);
|
|
||||||
|
|
||||||
String serializeOfficeDataToJson(boolean prettyPrint, Set<String> responseParameters, Collection<OfficeData> offices);
|
String serializeOfficeDataToJson(boolean prettyPrint, Set<String> responseParameters, Collection<OfficeData> offices);
|
||||||
|
|
||||||
String serializeOfficeDataToJson(boolean prettyPrint, Set<String> responseParameters, OfficeData office);
|
String serializeOfficeDataToJson(boolean prettyPrint, Set<String> responseParameters, OfficeData office);
|
||||||
|
|||||||
+20
-8
@@ -5,10 +5,12 @@ import java.util.Collection;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.mifosng.platform.api.data.AdditionalFieldsSetData;
|
||||||
import org.mifosng.platform.api.data.AppUserData;
|
import org.mifosng.platform.api.data.AppUserData;
|
||||||
import org.mifosng.platform.api.data.AuthenticatedUserData;
|
import org.mifosng.platform.api.data.AuthenticatedUserData;
|
||||||
import org.mifosng.platform.api.data.ConfigurationData;
|
import org.mifosng.platform.api.data.ConfigurationData;
|
||||||
import org.mifosng.platform.api.data.FundData;
|
import org.mifosng.platform.api.data.FundData;
|
||||||
|
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||||
import org.mifosng.platform.api.data.OfficeData;
|
import org.mifosng.platform.api.data.OfficeData;
|
||||||
import org.mifosng.platform.api.data.OfficeTransactionData;
|
import org.mifosng.platform.api.data.OfficeTransactionData;
|
||||||
import org.mifosng.platform.api.data.PermissionData;
|
import org.mifosng.platform.api.data.PermissionData;
|
||||||
@@ -34,9 +36,7 @@ public class GoogleGsonApiJsonSerializerService implements ApiJsonSerializerServ
|
|||||||
"hierarchy", "parentId", "parentName", "allowedParents")
|
"hierarchy", "parentId", "parentName", "allowedParents")
|
||||||
);
|
);
|
||||||
private static final Set<String> OFFICE_TRANSACTIONS_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("transactionDate", "allowedOffices", "currencyOptions"));
|
private static final Set<String> OFFICE_TRANSACTIONS_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("transactionDate", "allowedOffices", "currencyOptions"));
|
||||||
|
|
||||||
private static final Set<String> CONFIGURATION_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("selectedCurrencyOptions", "currencyOptions"));
|
private static final Set<String> CONFIGURATION_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("selectedCurrencyOptions", "currencyOptions"));
|
||||||
|
|
||||||
private static final Set<String> FUND_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("id", "name", "externalId"));
|
private static final Set<String> FUND_DATA_PARAMETERS = new HashSet<String>(Arrays.asList("id", "name", "externalId"));
|
||||||
|
|
||||||
private final GoogleGsonSerializerHelper helper;
|
private final GoogleGsonSerializerHelper helper;
|
||||||
@@ -46,6 +46,24 @@ public class GoogleGsonApiJsonSerializerService implements ApiJsonSerializerServ
|
|||||||
this.helper = helper;
|
this.helper = helper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String serializeAuthenticatedUserDataToJson(final boolean prettyPrint, final AuthenticatedUserData authenticatedUserData) {
|
||||||
|
final Gson gsonDeserializer = helper.createGsonBuilder(prettyPrint);
|
||||||
|
return helper.serializedJsonFrom(gsonDeserializer, authenticatedUserData);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String serializeGenericResultsetDataToJson(final boolean prettyPrint, final GenericResultsetData resultsetData) {
|
||||||
|
final Gson gsonDeserializer = helper.createGsonBuilder(prettyPrint);
|
||||||
|
return helper.serializedJsonFrom(gsonDeserializer, resultsetData);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String serializeAdditionalFieldsSetDataToJson(final boolean prettyPrint, final Collection<AdditionalFieldsSetData> datasets) {
|
||||||
|
final Gson gsonDeserializer = helper.createGsonBuilder(prettyPrint);
|
||||||
|
return helper.serializedJsonFrom(gsonDeserializer, datasets.toArray(new AdditionalFieldsSetData[datasets.size()]));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String serializePermissionDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final Collection<PermissionData> permissions) {
|
public String serializePermissionDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final Collection<PermissionData> permissions) {
|
||||||
final Gson gsonDeserializer = helper.createGsonBuilderWithParameterExclusionSerializationStrategy(PERMISSION_DATA_PARAMETERS, prettyPrint, responseParameters);
|
final Gson gsonDeserializer = helper.createGsonBuilderWithParameterExclusionSerializationStrategy(PERMISSION_DATA_PARAMETERS, prettyPrint, responseParameters);
|
||||||
@@ -76,12 +94,6 @@ public class GoogleGsonApiJsonSerializerService implements ApiJsonSerializerServ
|
|||||||
return helper.serializedJsonFrom(gsonDeserializer, user);
|
return helper.serializedJsonFrom(gsonDeserializer, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String serializeAuthenticatedUserDataToJson(final boolean prettyPrint, final AuthenticatedUserData authenticatedUserData) {
|
|
||||||
final Gson gsonDeserializer = helper.createGsonBuilder(prettyPrint);
|
|
||||||
return helper.serializedJsonFrom(gsonDeserializer, authenticatedUserData);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String serializeOfficeDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final Collection<OfficeData> offices) {
|
public String serializeOfficeDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final Collection<OfficeData> offices) {
|
||||||
final Gson gsonDeserializer = helper.createGsonBuilderWithParameterExclusionSerializationStrategy(OFFICE_DATA_PARAMETERS, prettyPrint, responseParameters);
|
final Gson gsonDeserializer = helper.createGsonBuilderWithParameterExclusionSerializationStrategy(OFFICE_DATA_PARAMETERS, prettyPrint, responseParameters);
|
||||||
|
|||||||
Reference in New Issue
Block a user