tidy up json serialization around additional data and reports.
This commit is contained in:
+8
-8
@@ -6,8 +6,8 @@ import java.util.Map;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.StreamingOutput;
|
||||
|
||||
import org.mifosng.platform.api.data.AdditionalFieldsSet;
|
||||
import org.mifosng.platform.api.data.GenericResultset;
|
||||
import org.mifosng.platform.api.data.AdditionalFieldsSetData;
|
||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||
|
||||
public interface ReadExtraDataAndReportingService {
|
||||
|
||||
@@ -15,18 +15,18 @@ public interface ReadExtraDataAndReportingService {
|
||||
Map<String, String> extractedQueryParams);
|
||||
|
||||
// @PreAuthorize(value = "hasAnyRole('REPORTING_SUPER_USER_ROLE')")
|
||||
GenericResultset retrieveGenericResultset(String name, String type,
|
||||
GenericResultsetData retrieveGenericResultset(String name, String type,
|
||||
Map<String, String> extractedQueryParams);
|
||||
|
||||
List<AdditionalFieldsSet> retrieveExtraDatasetNames(String type);
|
||||
List<AdditionalFieldsSetData> retrieveExtraDatasetNames(String type);
|
||||
|
||||
GenericResultset retrieveExtraData(String type, String set, Long id);
|
||||
GenericResultsetData retrieveExtraData(String type, String set, Long id);
|
||||
|
||||
void updateExtraData(String type, String set, Long id,
|
||||
Map<String, String> queryParams);
|
||||
|
||||
public Response processPentahoRequest(String reportName,
|
||||
String outputType, Map<String, String> queryParams);
|
||||
|
||||
Response processPentahoRequest(String reportName, String outputType,
|
||||
Map<String, String> queryParams);
|
||||
|
||||
String getReportType(String reportName);
|
||||
}
|
||||
+15
-15
@@ -20,8 +20,8 @@ import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.StreamingOutput;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.mifosng.platform.api.data.AdditionalFieldsSet;
|
||||
import org.mifosng.platform.api.data.GenericResultset;
|
||||
import org.mifosng.platform.api.data.AdditionalFieldsSetData;
|
||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||
import org.mifosng.platform.api.data.ResultsetColumnHeader;
|
||||
import org.mifosng.platform.api.data.ResultsetDataRow;
|
||||
import org.mifosng.platform.exceptions.AdditionalFieldsNotFoundException;
|
||||
@@ -76,7 +76,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
||||
public void write(OutputStream out) {
|
||||
try {
|
||||
|
||||
GenericResultset result = retrieveGenericResultset(name,
|
||||
GenericResultsetData result = retrieveGenericResultset(name,
|
||||
type, queryParams);
|
||||
StringBuffer sb = generateCsvFileBuffer(result);
|
||||
|
||||
@@ -102,7 +102,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
||||
|
||||
}
|
||||
|
||||
private static StringBuffer generateCsvFileBuffer(GenericResultset result) {
|
||||
private static StringBuffer generateCsvFileBuffer(GenericResultsetData result) {
|
||||
StringBuffer writer = new StringBuffer();
|
||||
|
||||
List<ResultsetColumnHeader> columnHeaders = result.getColumnHeaders();
|
||||
@@ -149,7 +149,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public GenericResultset retrieveGenericResultset(final String name,
|
||||
public GenericResultsetData retrieveGenericResultset(final String name,
|
||||
final String type, final Map<String, String> queryParams) {
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
@@ -180,7 +180,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
||||
sql = getSQLtoRun(name, type, queryParams);
|
||||
}
|
||||
|
||||
GenericResultset result = fillReportingGenericResultSet(sql);
|
||||
GenericResultsetData result = fillReportingGenericResultSet(sql);
|
||||
|
||||
long elapsed = System.currentTimeMillis() - startTime;
|
||||
logger.info("FINISHING Report/Request Name: " + name + " - " + type
|
||||
@@ -188,9 +188,9 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
||||
return result;
|
||||
}
|
||||
|
||||
private GenericResultset fillReportingGenericResultSet(final String sql) {
|
||||
private GenericResultsetData fillReportingGenericResultSet(final String sql) {
|
||||
|
||||
GenericResultset result = new GenericResultset();
|
||||
GenericResultsetData result = new GenericResultsetData();
|
||||
|
||||
Connection db_connection = null;
|
||||
Statement db_statement = null;
|
||||
@@ -328,9 +328,9 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AdditionalFieldsSet> retrieveExtraDatasetNames(String type) {
|
||||
public List<AdditionalFieldsSetData> retrieveExtraDatasetNames(String type) {
|
||||
|
||||
List<AdditionalFieldsSet> additionalFieldsSets = new ArrayList<AdditionalFieldsSet>();
|
||||
List<AdditionalFieldsSetData> additionalFieldsSets = new ArrayList<AdditionalFieldsSetData>();
|
||||
|
||||
Connection db_connection = null;
|
||||
Statement db_statement = null;
|
||||
@@ -350,7 +350,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
||||
ResultSet rs = db_statement.executeQuery(sql);
|
||||
|
||||
while (rs.next()) {
|
||||
additionalFieldsSets.add(new AdditionalFieldsSet(rs
|
||||
additionalFieldsSets.add(new AdditionalFieldsSetData(rs
|
||||
.getInt("id"), rs.getString("set"), rs
|
||||
.getString("type")));
|
||||
}
|
||||
@@ -366,19 +366,19 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public GenericResultset retrieveExtraData(String type, String set, Long id) {
|
||||
public GenericResultsetData retrieveExtraData(String type, String set, Long id) {
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
GenericResultset result = fillExtraDataGenericResultSet(type, set, id);
|
||||
GenericResultsetData result = fillExtraDataGenericResultSet(type, set, id);
|
||||
long elapsed = System.currentTimeMillis() - startTime;
|
||||
logger.info("FINISHING SET: " + set + " Elapsed Time: " + elapsed);
|
||||
return result;
|
||||
}
|
||||
|
||||
private GenericResultset fillExtraDataGenericResultSet(String type,
|
||||
private GenericResultsetData fillExtraDataGenericResultSet(String type,
|
||||
String set, Long id) {
|
||||
|
||||
GenericResultset result = new GenericResultset();
|
||||
GenericResultsetData result = new GenericResultsetData();
|
||||
|
||||
Connection db_connection = null;
|
||||
Statement db_statement1 = null;
|
||||
|
||||
+17
-27
@@ -24,11 +24,12 @@ import org.codehaus.jettison.json.JSONException;
|
||||
import org.codehaus.jettison.json.JSONObject;
|
||||
import org.mifosng.platform.InvalidSqlException;
|
||||
import org.mifosng.platform.ReadExtraDataAndReportingService;
|
||||
import org.mifosng.platform.api.data.AdditionalFieldsSet;
|
||||
import org.mifosng.platform.api.data.AdditionalFieldsSetData;
|
||||
import org.mifosng.platform.api.data.ApiParameterError;
|
||||
import org.mifosng.platform.api.data.EntityIdentifier;
|
||||
import org.mifosng.platform.api.data.GenericResultset;
|
||||
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
|
||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
|
||||
import org.mifosng.platform.api.infrastructure.ApiParameterHelper;
|
||||
import org.mifosng.platform.exceptions.PlatformApiDataValidationException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -41,30 +42,23 @@ import org.springframework.stereotype.Component;
|
||||
@Scope("singleton")
|
||||
public class AdditionalFieldsApiResource {
|
||||
|
||||
private final static Logger logger = LoggerFactory
|
||||
.getLogger(AdditionalFieldsApiResource.class);
|
||||
|
||||
private String allowedFieldList = "";
|
||||
private String filterName = "myFilter";
|
||||
private final static Logger logger = LoggerFactory.getLogger(AdditionalFieldsApiResource.class);
|
||||
|
||||
@Autowired
|
||||
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private ApiJSONFormattingService jsonFormattingService;
|
||||
private ApiDataConversionService apiDataConversionService;
|
||||
|
||||
@GET
|
||||
@Consumes({MediaType.APPLICATION_JSON})
|
||||
@Produces({MediaType.APPLICATION_JSON})
|
||||
public String datasets(@QueryParam("type") String type,
|
||||
@Context UriInfo uriInfo) {
|
||||
public String datasets(@QueryParam("type") final String type, @Context final UriInfo uriInfo) {
|
||||
|
||||
List<AdditionalFieldsSet> result = this.readExtraDataAndReportingService
|
||||
.retrieveExtraDatasetNames(type);
|
||||
List<AdditionalFieldsSetData> result = this.readExtraDataAndReportingService.retrieveExtraDatasetNames(type);
|
||||
|
||||
String selectedFields = "";
|
||||
return this.jsonFormattingService.convertRequest(result, filterName,
|
||||
allowedFieldList, selectedFields, uriInfo.getQueryParameters());
|
||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||
return this.apiDataConversionService.convertAdditionalFieldsSetDataToJson(prettyPrint, result.toArray(new AdditionalFieldsSetData[result.size()]));
|
||||
}
|
||||
|
||||
@GET
|
||||
@@ -73,17 +67,13 @@ public class AdditionalFieldsApiResource {
|
||||
@Produces({MediaType.APPLICATION_JSON})
|
||||
public String extraData(@PathParam("type") final String type,
|
||||
@PathParam("set") final String set, @PathParam("id") final Long id,
|
||||
@Context UriInfo uriInfo) {
|
||||
@Context final UriInfo uriInfo) {
|
||||
|
||||
try {
|
||||
GenericResultset result = this.readExtraDataAndReportingService
|
||||
.retrieveExtraData(type, set, id);
|
||||
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveExtraData(type, set, id);
|
||||
|
||||
String selectedFields = "";
|
||||
//Note that GenericResultSet doesn't have a filter so all fields are returned (this is correct)
|
||||
return this.jsonFormattingService.convertRequest(result, filterName,
|
||||
allowedFieldList, selectedFields,
|
||||
uriInfo.getQueryParameters());
|
||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||
return this.apiDataConversionService.convertGenericResultsetDataToJson(prettyPrint, result);
|
||||
} catch (InvalidSqlException e) {
|
||||
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
||||
ApiParameterError error = ApiParameterError.parameterError(
|
||||
@@ -102,7 +92,7 @@ public class AdditionalFieldsApiResource {
|
||||
@Produces({MediaType.APPLICATION_JSON})
|
||||
public Response saveExtraData(@PathParam("type") final String type,
|
||||
@PathParam("set") final String set, @PathParam("id") final Long id,
|
||||
String reqbody) {
|
||||
final String jsonRequestBody) {
|
||||
|
||||
try {
|
||||
|
||||
@@ -110,7 +100,7 @@ public class AdditionalFieldsApiResource {
|
||||
String pValue = "";
|
||||
String pName;
|
||||
try {
|
||||
JSONObject jsonObj = new JSONObject(reqbody);
|
||||
JSONObject jsonObj = new JSONObject(jsonRequestBody);
|
||||
JSONArray jsonArr = jsonObj.names();
|
||||
if (jsonArr != null) {
|
||||
for (int i = 0; i < jsonArr.length(); i++) {
|
||||
|
||||
@@ -17,8 +17,9 @@ import javax.ws.rs.core.StreamingOutput;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
|
||||
import org.mifosng.platform.ReadExtraDataAndReportingService;
|
||||
import org.mifosng.platform.api.data.GenericResultset;
|
||||
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
|
||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
|
||||
import org.mifosng.platform.api.infrastructure.ApiParameterHelper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -28,38 +29,31 @@ import org.springframework.stereotype.Component;
|
||||
@Scope("singleton")
|
||||
public class ReportsApiResource {
|
||||
|
||||
private String allowedFieldList = "";
|
||||
private String filterName = "myFilter";
|
||||
|
||||
@Autowired
|
||||
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
||||
|
||||
@Autowired
|
||||
private ApiJSONFormattingService jsonFormattingService;
|
||||
|
||||
private ApiDataConversionService apiDataConversionService;
|
||||
|
||||
@GET
|
||||
@Consumes({MediaType.APPLICATION_JSON})
|
||||
@Produces({MediaType.APPLICATION_JSON, "application/x-msdownload" })
|
||||
public Response retrieveReportList(@Context final UriInfo uriInfo) {
|
||||
|
||||
MultivaluedMap<String, String> queryParams = uriInfo
|
||||
.getQueryParameters();
|
||||
Map<String, String> extractedQueryParams = new HashMap<String, String>();
|
||||
|
||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||
boolean exportCsv = ApiParameterHelper.exportCsv(uriInfo.getQueryParameters());
|
||||
|
||||
String exportCSV = queryParams.getFirst("exportCSV");
|
||||
|
||||
if ((exportCSV == null) || (!(exportCSV.equalsIgnoreCase("true")))) {
|
||||
GenericResultset result = this.readExtraDataAndReportingService
|
||||
.retrieveGenericResultset(".", ".", extractedQueryParams);
|
||||
String selectedFields = "";
|
||||
String json = this.jsonFormattingService.convertRequest(result,
|
||||
filterName, allowedFieldList, selectedFields,
|
||||
uriInfo.getQueryParameters());
|
||||
if (!exportCsv) {
|
||||
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(".", ".", extractedQueryParams);
|
||||
|
||||
final String json = this.apiDataConversionService.convertGenericResultsetDataToJson(prettyPrint, result);
|
||||
|
||||
return Response.ok().entity(json).build();
|
||||
}
|
||||
|
||||
StreamingOutput result = this.readExtraDataAndReportingService
|
||||
.retrieveReportCSV(".", ".", extractedQueryParams);
|
||||
StreamingOutput result = this.readExtraDataAndReportingService.retrieveReportCSV(".", ".", extractedQueryParams);
|
||||
|
||||
return Response
|
||||
.ok()
|
||||
@@ -71,52 +65,43 @@ public class ReportsApiResource {
|
||||
@GET
|
||||
@Path("{reportName}")
|
||||
@Consumes({MediaType.APPLICATION_JSON})
|
||||
@Produces({MediaType.APPLICATION_JSON, "application/x-msdownload",
|
||||
"application/vnd.ms-excel", "application/pdf", "text/html" })
|
||||
@Produces({MediaType.APPLICATION_JSON, "application/x-msdownload","application/vnd.ms-excel", "application/pdf", "text/html" })
|
||||
public Response retrieveReport(
|
||||
@PathParam("reportName") final String reportName,
|
||||
@Context final UriInfo uriInfo) {
|
||||
|
||||
MultivaluedMap<String, String> queryParams = uriInfo
|
||||
.getQueryParameters();
|
||||
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
|
||||
|
||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||
boolean exportCsv = ApiParameterHelper.exportCsv(uriInfo.getQueryParameters());
|
||||
boolean parameterType = ApiParameterHelper.parameterType(uriInfo.getQueryParameters());
|
||||
|
||||
String parameterType = queryParams.getFirst("parameterType");
|
||||
if ((parameterType == null)
|
||||
|| (!(parameterType.equalsIgnoreCase("true")))) {
|
||||
parameterType = "report";
|
||||
} else {
|
||||
parameterType = "parameter";
|
||||
}
|
||||
|
||||
if (parameterType.equals("report")) {
|
||||
if (this.readExtraDataAndReportingService.getReportType(reportName)
|
||||
.equalsIgnoreCase("Pentaho")) {
|
||||
|
||||
return this.readExtraDataAndReportingService
|
||||
.processPentahoRequest(reportName,
|
||||
queryParams.getFirst("output-type"),
|
||||
getReportParams(queryParams, true));
|
||||
String parameterTypeValue = null;
|
||||
if (!parameterType) {
|
||||
parameterTypeValue = "report";
|
||||
if (this.readExtraDataAndReportingService.getReportType(reportName).equalsIgnoreCase("Pentaho")) {
|
||||
Map<String, String> reportParams = getReportParams(queryParams, true);
|
||||
return this.readExtraDataAndReportingService.processPentahoRequest(reportName, queryParams.getFirst("output-type"), reportParams);
|
||||
}
|
||||
} else {
|
||||
parameterTypeValue = "parameter";
|
||||
}
|
||||
|
||||
String exportCSV = queryParams.getFirst("exportCSV");
|
||||
if ((exportCSV == null) || (!(exportCSV.equalsIgnoreCase("true")))) {
|
||||
// JSON
|
||||
GenericResultset result = this.readExtraDataAndReportingService
|
||||
.retrieveGenericResultset(reportName, parameterType,
|
||||
getReportParams(queryParams, false));
|
||||
if (!exportCsv) {
|
||||
|
||||
Map<String, String> reportParams = getReportParams(queryParams, false);
|
||||
|
||||
GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(reportName, parameterTypeValue, reportParams);
|
||||
|
||||
String selectedFields = "";
|
||||
String json = this.jsonFormattingService.convertRequest(result,
|
||||
filterName, allowedFieldList, selectedFields,
|
||||
uriInfo.getQueryParameters());
|
||||
return Response.ok().entity(json).type(MediaType.APPLICATION_JSON)
|
||||
.build();
|
||||
final String json = this.apiDataConversionService.convertGenericResultsetDataToJson(prettyPrint, result);
|
||||
|
||||
return Response.ok().entity(json).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
|
||||
// CSV Export
|
||||
StreamingOutput result = this.readExtraDataAndReportingService
|
||||
.retrieveReportCSV(reportName, parameterType, getReportParams(queryParams, false));
|
||||
Map<String, String> reportParams = getReportParams(queryParams, false);
|
||||
StreamingOutput result = this.readExtraDataAndReportingService.retrieveReportCSV(reportName, parameterTypeValue, reportParams);
|
||||
|
||||
return Response
|
||||
.ok()
|
||||
.entity(result)
|
||||
@@ -126,8 +111,7 @@ public class ReportsApiResource {
|
||||
+ ".csv").build();
|
||||
}
|
||||
|
||||
private Map<String, String> getReportParams(
|
||||
MultivaluedMap<String, String> queryParams, Boolean isPentaho) {
|
||||
private Map<String, String> getReportParams(final MultivaluedMap<String, String> queryParams, final Boolean isPentaho) {
|
||||
|
||||
Map<String, String> reportParams = new HashMap<String, String>();
|
||||
Set<String> keys = queryParams.keySet();
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
package org.mifosng.platform.api.data;
|
||||
|
||||
import org.codehaus.jackson.map.annotate.JsonFilter;
|
||||
|
||||
@JsonFilter("myFilter")
|
||||
public class AdditionalFieldsSet {
|
||||
|
||||
private Integer id;
|
||||
private String name;
|
||||
private String type;
|
||||
protected AdditionalFieldsSet() {
|
||||
//
|
||||
}
|
||||
|
||||
public AdditionalFieldsSet(final Integer id, final String name, final String type) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package org.mifosng.platform.api.data;
|
||||
|
||||
public class AdditionalFieldsSetData {
|
||||
|
||||
private final Integer id;
|
||||
private final String name;
|
||||
private final String type;
|
||||
|
||||
public AdditionalFieldsSetData(final Integer id, final String name, final String type) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -3,12 +3,12 @@ package org.mifosng.platform.api.data;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GenericResultset {
|
||||
public class GenericResultsetData {
|
||||
|
||||
private List<ResultsetColumnHeader> columnHeaders = new ArrayList<ResultsetColumnHeader>();
|
||||
private List<ResultsetDataRow> data = new ArrayList<ResultsetDataRow>();
|
||||
|
||||
public GenericResultset() {
|
||||
public GenericResultsetData() {
|
||||
|
||||
}
|
||||
|
||||
+6
@@ -15,11 +15,13 @@ import org.mifosng.platform.api.commands.OrganisationCurrencyCommand;
|
||||
import org.mifosng.platform.api.commands.RoleCommand;
|
||||
import org.mifosng.platform.api.commands.SubmitLoanApplicationCommand;
|
||||
import org.mifosng.platform.api.commands.UserCommand;
|
||||
import org.mifosng.platform.api.data.AdditionalFieldsSetData;
|
||||
import org.mifosng.platform.api.data.AppUserData;
|
||||
import org.mifosng.platform.api.data.ClientData;
|
||||
import org.mifosng.platform.api.data.ClientLoanAccountSummaryCollectionData;
|
||||
import org.mifosng.platform.api.data.ConfigurationData;
|
||||
import org.mifosng.platform.api.data.FundData;
|
||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||
import org.mifosng.platform.api.data.LoanAccountData;
|
||||
import org.mifosng.platform.api.data.LoanProductData;
|
||||
import org.mifosng.platform.api.data.LoanTransactionData;
|
||||
@@ -57,6 +59,10 @@ public interface ApiDataConversionService {
|
||||
String convertLoanAccountDataToJson(boolean prettyPrint, Set<String> responseParameters, LoanAccountData loanAccount);
|
||||
|
||||
String convertLoanTransactionDataToJson(boolean prettyPrint, Set<String> responseParameters, LoanTransactionData... transactions);
|
||||
|
||||
String convertAdditionalFieldsSetDataToJson(boolean prettyPrint, AdditionalFieldsSetData... additionalFields);
|
||||
|
||||
String convertGenericResultsetDataToJson(boolean prettyPrint, GenericResultsetData result);
|
||||
//
|
||||
|
||||
FundCommand convertJsonToFundCommand(Long resourceIdentifier, String json);
|
||||
|
||||
+36
@@ -31,12 +31,14 @@ import org.mifosng.platform.api.commands.OrganisationCurrencyCommand;
|
||||
import org.mifosng.platform.api.commands.RoleCommand;
|
||||
import org.mifosng.platform.api.commands.SubmitLoanApplicationCommand;
|
||||
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.AppUserData;
|
||||
import org.mifosng.platform.api.data.ClientData;
|
||||
import org.mifosng.platform.api.data.ClientLoanAccountSummaryCollectionData;
|
||||
import org.mifosng.platform.api.data.ConfigurationData;
|
||||
import org.mifosng.platform.api.data.FundData;
|
||||
import org.mifosng.platform.api.data.GenericResultsetData;
|
||||
import org.mifosng.platform.api.data.LoanAccountData;
|
||||
import org.mifosng.platform.api.data.LoanProductData;
|
||||
import org.mifosng.platform.api.data.LoanTransactionData;
|
||||
@@ -71,6 +73,40 @@ public class ApiDataConversionServiceImpl implements ApiDataConversionService {
|
||||
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();
|
||||
|
||||
String json = "";
|
||||
if (additionalFields != null && additionalFields.length == 1) {
|
||||
json = gsonDeserializer.toJson(additionalFields[0]);
|
||||
} else {
|
||||
json = gsonDeserializer.toJson(additionalFields);
|
||||
}
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertLoanTransactionDataToJson(final boolean prettyPrint, final Set<String> responseParameters, final LoanTransactionData... transactions) {
|
||||
Set<String> supportedParameters = new HashSet<String>(
|
||||
|
||||
+4
@@ -2,6 +2,10 @@ package org.mifosng.platform.api.infrastructure;
|
||||
|
||||
import javax.ws.rs.core.MultivaluedMap;
|
||||
|
||||
/**
|
||||
* Removed in favour of using google gson within {@link ApiDataConversionService}.
|
||||
*/
|
||||
@Deprecated
|
||||
public interface ApiJSONFormattingService {
|
||||
|
||||
String convertRequest(Object dataObject, String filterName,
|
||||
|
||||
+4
-2
@@ -15,9 +15,11 @@ import org.codehaus.jackson.map.ser.FilterProvider;
|
||||
import org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter;
|
||||
import org.codehaus.jackson.map.ser.impl.SimpleFilterProvider;
|
||||
import org.mifosng.platform.exceptions.PlatformInternalServerException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Deprecated
|
||||
public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
|
||||
|
||||
@Override
|
||||
|
||||
+18
@@ -43,6 +43,24 @@ public class ApiParameterHelper {
|
||||
return prettyPrint;
|
||||
}
|
||||
|
||||
public static boolean exportCsv(final MultivaluedMap<String, String> queryParams) {
|
||||
boolean exportCsv = false;
|
||||
if (queryParams.getFirst("exportCSV") != null) {
|
||||
String exportCsvValue = queryParams.getFirst("exportCSV");
|
||||
exportCsv = "true".equalsIgnoreCase(exportCsvValue);
|
||||
}
|
||||
return exportCsv;
|
||||
}
|
||||
|
||||
public static boolean parameterType(final MultivaluedMap<String, String> queryParams) {
|
||||
boolean parameterType = false;
|
||||
if (queryParams.getFirst("parameterType") != null) {
|
||||
String parameterTypeValue = queryParams.getFirst("parameterType");
|
||||
parameterType = "true".equalsIgnoreCase(parameterTypeValue);
|
||||
}
|
||||
return parameterType;
|
||||
}
|
||||
|
||||
public static boolean template(final MultivaluedMap<String, String> queryParams) {
|
||||
boolean template = false;
|
||||
if (queryParams.getFirst("template") != null) {
|
||||
|
||||
Reference in New Issue
Block a user