WIP fields parameter additionfields
This commit is contained in:
@@ -2,7 +2,10 @@ package org.mifosng.data;
|
|||||||
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
import org.codehaus.jackson.map.annotate.JsonFilter;
|
||||||
|
|
||||||
@XmlRootElement
|
@XmlRootElement
|
||||||
|
@JsonFilter("myFilter")
|
||||||
public class AdditionalFieldsSet {
|
public class AdditionalFieldsSet {
|
||||||
|
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
package org.mifosng.data;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
|
||||||
|
|
||||||
@XmlRootElement
|
|
||||||
public class AdditionalFieldsSets {
|
|
||||||
|
|
||||||
private List<AdditionalFieldsSet> additionalFieldsSets = new ArrayList<AdditionalFieldsSet>();
|
|
||||||
|
|
||||||
protected AdditionalFieldsSets() {
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
public AdditionalFieldsSets(final List<AdditionalFieldsSet> additionalFieldsSets) {
|
|
||||||
this.additionalFieldsSets = additionalFieldsSets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<AdditionalFieldsSet> getAdditionalFieldsSets() {
|
|
||||||
return additionalFieldsSets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAdditionalFieldsSets(List<AdditionalFieldsSet> additionalFieldsSets) {
|
|
||||||
this.additionalFieldsSets = additionalFieldsSets;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -53,28 +53,28 @@
|
|||||||
headingClassStr = ' class="' + displayAllVars.headingClass + '" ';
|
headingClassStr = ' class="' + displayAllVars.headingClass + '" ';
|
||||||
|
|
||||||
var extraDataNamesVar = "";
|
var extraDataNamesVar = "";
|
||||||
for ( var i in data.additionalFieldsSets) {
|
for ( var i in data) {
|
||||||
var dsnDivName = generateDsnDivName(displayAllVars.datasetType, i,
|
var dsnDivName = generateDsnDivName(displayAllVars.datasetType, i,
|
||||||
displayAllVars.datasetTypeDiv);
|
displayAllVars.datasetTypeDiv);
|
||||||
extraDataNamesVar += '<br><span ' + headingClassStr + '><b>'
|
extraDataNamesVar += '<br><span ' + headingClassStr + '><b>'
|
||||||
+ doI18N(displayAllVars.headingPrefix)
|
+ doI18N(displayAllVars.headingPrefix)
|
||||||
+ doI18N(data.additionalFieldsSets[i].name)
|
+ doI18N(data[i].name)
|
||||||
+ ' - </span></b> ';
|
+ ' - </span></b> ';
|
||||||
|
|
||||||
extraDataNamesVar += editExtraDataLink(displayAllVars.url, displayAllVars.basicAuthKey,
|
extraDataNamesVar += editExtraDataLink(displayAllVars.url, displayAllVars.basicAuthKey,
|
||||||
displayAllVars.datasetType,
|
displayAllVars.datasetType,
|
||||||
data.additionalFieldsSets[i].name,
|
data[i].name,
|
||||||
displayAllVars.datasetPKValue, dsnDivName);
|
displayAllVars.datasetPKValue, dsnDivName);
|
||||||
|
|
||||||
extraDataNamesVar += '<div id="' + dsnDivName + '">';
|
extraDataNamesVar += '<div id="' + dsnDivName + '">';
|
||||||
extraDataNamesVar += '</div>';
|
extraDataNamesVar += '</div>';
|
||||||
}
|
}
|
||||||
$('#' + displayAllVars.datasetTypeDiv).html(extraDataNamesVar);
|
$('#' + displayAllVars.datasetTypeDiv).html(extraDataNamesVar);
|
||||||
for ( var i in data.additionalFieldsSets) {
|
for ( var i in data) {
|
||||||
var dsnDivName = generateDsnDivName(displayAllVars.datasetType, i,
|
var dsnDivName = generateDsnDivName(displayAllVars.datasetType, i,
|
||||||
displayAllVars.datasetTypeDiv);
|
displayAllVars.datasetTypeDiv);
|
||||||
viewExtraData(displayAllVars.url, displayAllVars.basicAuthKey, displayAllVars.datasetType,
|
viewExtraData(displayAllVars.url, displayAllVars.basicAuthKey, displayAllVars.datasetType,
|
||||||
data.additionalFieldsSets[i].name,
|
data[i].name,
|
||||||
displayAllVars.datasetPKValue, dsnDivName);
|
displayAllVars.datasetPKValue, dsnDivName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -1,10 +1,11 @@
|
|||||||
package org.mifosng.platform;
|
package org.mifosng.platform;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.ws.rs.core.StreamingOutput;
|
import javax.ws.rs.core.StreamingOutput;
|
||||||
|
|
||||||
import org.mifosng.data.AdditionalFieldsSets;
|
import org.mifosng.data.AdditionalFieldsSet;
|
||||||
import org.mifosng.data.reports.GenericResultset;
|
import org.mifosng.data.reports.GenericResultset;
|
||||||
|
|
||||||
public interface ReadExtraDataAndReportingService {
|
public interface ReadExtraDataAndReportingService {
|
||||||
@@ -16,7 +17,7 @@ public interface ReadExtraDataAndReportingService {
|
|||||||
GenericResultset retrieveGenericResultset(String name, String type,
|
GenericResultset retrieveGenericResultset(String name, String type,
|
||||||
Map<String, String> extractedQueryParams);
|
Map<String, String> extractedQueryParams);
|
||||||
|
|
||||||
AdditionalFieldsSets retrieveExtraDatasetNames(String type);
|
List<AdditionalFieldsSet> retrieveExtraDatasetNames(String type);
|
||||||
|
|
||||||
GenericResultset retrieveExtraData(String type, String set, Long id);
|
GenericResultset retrieveExtraData(String type, String set, Long id);
|
||||||
|
|
||||||
|
|||||||
+3
-5
@@ -17,7 +17,6 @@ import javax.sql.DataSource;
|
|||||||
import javax.ws.rs.core.StreamingOutput;
|
import javax.ws.rs.core.StreamingOutput;
|
||||||
|
|
||||||
import org.mifosng.data.AdditionalFieldsSet;
|
import org.mifosng.data.AdditionalFieldsSet;
|
||||||
import org.mifosng.data.AdditionalFieldsSets;
|
|
||||||
import org.mifosng.data.reports.GenericResultset;
|
import org.mifosng.data.reports.GenericResultset;
|
||||||
import org.mifosng.data.reports.ResultsetColumnHeader;
|
import org.mifosng.data.reports.ResultsetColumnHeader;
|
||||||
import org.mifosng.data.reports.ResultsetDataRow;
|
import org.mifosng.data.reports.ResultsetDataRow;
|
||||||
@@ -331,7 +330,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AdditionalFieldsSets retrieveExtraDatasetNames(String type) {
|
public List<AdditionalFieldsSet> retrieveExtraDatasetNames(String type) {
|
||||||
|
|
||||||
List<AdditionalFieldsSet> additionalFieldsSets = new ArrayList<AdditionalFieldsSet>();
|
List<AdditionalFieldsSet> additionalFieldsSets = new ArrayList<AdditionalFieldsSet>();
|
||||||
|
|
||||||
@@ -366,7 +365,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
"Additional Fields Type: " + type);
|
"Additional Fields Type: " + type);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new AdditionalFieldsSets(additionalFieldsSets);
|
return additionalFieldsSets;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -598,8 +597,7 @@ public class ReadExtraDataAndReportingServiceImpl implements
|
|||||||
String transType = null;
|
String transType = null;
|
||||||
|
|
||||||
String sql = "select s.id from `" + type + "` t left join `"
|
String sql = "select s.id from `" + type + "` t left join `"
|
||||||
+ fullDatasetName + "` s on s.id = t.id where t.id = "
|
+ fullDatasetName + "` s on s.id = t.id where t.id = " + id;
|
||||||
+ id;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Connection db_connection = dataSource.getConnection();
|
Connection db_connection = dataSource.getConnection();
|
||||||
|
|||||||
+39
-21
@@ -11,23 +11,22 @@ import javax.ws.rs.POST;
|
|||||||
import javax.ws.rs.Path;
|
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.WebApplicationException;
|
import javax.ws.rs.WebApplicationException;
|
||||||
import javax.ws.rs.core.Context;
|
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.MultivaluedMap;
|
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
import javax.ws.rs.core.Response.Status;
|
import javax.ws.rs.core.Response.Status;
|
||||||
import javax.ws.rs.core.UriInfo;
|
|
||||||
|
|
||||||
import org.codehaus.jettison.json.JSONArray;
|
import org.codehaus.jettison.json.JSONArray;
|
||||||
import org.codehaus.jettison.json.JSONException;
|
import org.codehaus.jettison.json.JSONException;
|
||||||
import org.codehaus.jettison.json.JSONObject;
|
import org.codehaus.jettison.json.JSONObject;
|
||||||
import org.mifosng.data.AdditionalFieldsSets;
|
import org.mifosng.data.AdditionalFieldsSet;
|
||||||
import org.mifosng.data.ApiParameterError;
|
import org.mifosng.data.ApiParameterError;
|
||||||
import org.mifosng.data.EntityIdentifier;
|
import org.mifosng.data.EntityIdentifier;
|
||||||
import org.mifosng.data.reports.GenericResultset;
|
import org.mifosng.data.reports.GenericResultset;
|
||||||
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.infrastructure.ApiJSONFormattingService;
|
||||||
import org.mifosng.platform.exceptions.PlatformApiDataValidationException;
|
import org.mifosng.platform.exceptions.PlatformApiDataValidationException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -40,23 +39,35 @@ import org.springframework.stereotype.Component;
|
|||||||
@Scope("singleton")
|
@Scope("singleton")
|
||||||
public class AdditionalFieldsApiResource {
|
public class AdditionalFieldsApiResource {
|
||||||
|
|
||||||
private final static Logger logger = LoggerFactory.getLogger(AdditionalFieldsApiResource.class);
|
private final static Logger logger = LoggerFactory
|
||||||
|
.getLogger(AdditionalFieldsApiResource.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
private ReadExtraDataAndReportingService readExtraDataAndReportingService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApiJSONFormattingService jsonFormattingService;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
public Response datasets(@Context UriInfo uriInfo) {
|
public String datasets(@QueryParam("type") String type,
|
||||||
|
@QueryParam("fields") String fields,
|
||||||
|
@QueryParam("pretty") String pretty) {
|
||||||
|
|
||||||
MultivaluedMap<String, String> queryParams = uriInfo
|
List<AdditionalFieldsSet> result = this.readExtraDataAndReportingService
|
||||||
.getQueryParameters();
|
|
||||||
String type = queryParams.getFirst("type");
|
|
||||||
|
|
||||||
AdditionalFieldsSets result = this.readExtraDataAndReportingService
|
|
||||||
.retrieveExtraDatasetNames(type);
|
.retrieveExtraDatasetNames(type);
|
||||||
return Response.ok().entity(result).build();
|
|
||||||
|
String filterType = "E";
|
||||||
|
String fieldList = "";
|
||||||
|
if (this.jsonFormattingService.isPassed(fields)) {
|
||||||
|
filterType = "I";
|
||||||
|
fieldList = fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.jsonFormattingService.convertDataObjectJSON(result,
|
||||||
|
filterType, fieldList,
|
||||||
|
this.jsonFormattingService.isTrue(pretty));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@@ -64,8 +75,7 @@ public class AdditionalFieldsApiResource {
|
|||||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
public Response extraData(@PathParam("type") final String type,
|
public Response extraData(@PathParam("type") final String type,
|
||||||
@PathParam("set") final String set,
|
@PathParam("set") final String set, @PathParam("id") final Long id) {
|
||||||
@PathParam("id") final Long id) {
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
GenericResultset result = this.readExtraDataAndReportingService
|
GenericResultset result = this.readExtraDataAndReportingService
|
||||||
@@ -74,9 +84,13 @@ public class AdditionalFieldsApiResource {
|
|||||||
return Response.ok().entity(result).build();
|
return Response.ok().entity(result).build();
|
||||||
} catch (InvalidSqlException e) {
|
} catch (InvalidSqlException e) {
|
||||||
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
||||||
ApiParameterError error = ApiParameterError.parameterError("extradata.invalid.sql", "The sql is invalid.", "sql", e.getSql());
|
ApiParameterError error = ApiParameterError.parameterError(
|
||||||
|
"extradata.invalid.sql", "The sql is invalid.", "sql",
|
||||||
|
e.getSql());
|
||||||
dataValidationErrors.add(error);
|
dataValidationErrors.add(error);
|
||||||
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.", dataValidationErrors);
|
throw new PlatformApiDataValidationException(
|
||||||
|
"validation.msg.validation.errors.exist",
|
||||||
|
"Validation errors exist.", dataValidationErrors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,8 +99,8 @@ public class AdditionalFieldsApiResource {
|
|||||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
public Response saveExtraData(@PathParam("type") final String type,
|
public Response saveExtraData(@PathParam("type") final String type,
|
||||||
@PathParam("set") final String set,
|
@PathParam("set") final String set, @PathParam("id") final Long id,
|
||||||
@PathParam("id") final Long id, String reqbody) {
|
String reqbody) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@@ -122,11 +136,15 @@ public class AdditionalFieldsApiResource {
|
|||||||
|
|
||||||
return Response.ok().entity(entityIdentifier).build();
|
return Response.ok().entity(entityIdentifier).build();
|
||||||
} catch (InvalidSqlException e) {
|
} catch (InvalidSqlException e) {
|
||||||
|
|
||||||
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
||||||
ApiParameterError error = ApiParameterError.parameterError("extradata.invalid.sql", "The sql is invalid.", "sql", e.getSql());
|
ApiParameterError error = ApiParameterError.parameterError(
|
||||||
|
"extradata.invalid.sql", "The sql is invalid.", "sql",
|
||||||
|
e.getSql());
|
||||||
dataValidationErrors.add(error);
|
dataValidationErrors.add(error);
|
||||||
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.", dataValidationErrors);
|
throw new PlatformApiDataValidationException(
|
||||||
|
"validation.msg.validation.errors.exist",
|
||||||
|
"Validation errors exist.", dataValidationErrors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
package org.mifosng.platform.api;
|
package org.mifosng.platform.api;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
@@ -53,11 +51,15 @@ public class OfficeApiResource {
|
|||||||
Collection<OfficeData> offices = this.readPlatformService
|
Collection<OfficeData> offices = this.readPlatformService
|
||||||
.retrieveAllOffices();
|
.retrieveAllOffices();
|
||||||
|
|
||||||
Set<String> excludeFields = new HashSet<String>();
|
String filterType = "E";
|
||||||
excludeFields.add("allowedParents");
|
String fieldList = "allowedParents";
|
||||||
|
if (this.jsonFormattingService.isPassed(fields)) {
|
||||||
|
filterType = "I";
|
||||||
|
fieldList = fields;
|
||||||
|
}
|
||||||
|
|
||||||
return this.jsonFormattingService.convertDataObjectJSON(offices,
|
return this.jsonFormattingService.convertDataObjectJSON(offices,
|
||||||
fields, excludeFields,
|
filterType, fieldList,
|
||||||
this.jsonFormattingService.isTrue(pretty));
|
this.jsonFormattingService.isTrue(pretty));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,11 +72,11 @@ public class OfficeApiResource {
|
|||||||
OfficeData officeData = this.readPlatformService
|
OfficeData officeData = this.readPlatformService
|
||||||
.retrieveNewOfficeTemplate();
|
.retrieveNewOfficeTemplate();
|
||||||
|
|
||||||
Set<String> excludeFields = new HashSet<String>();
|
String filterType = "I";
|
||||||
String includeFields = "openingDate,allowedParents";
|
String fieldList = "openingDate,allowedParents";
|
||||||
|
|
||||||
return this.jsonFormattingService.convertDataObjectJSON(officeData,
|
return this.jsonFormattingService.convertDataObjectJSON(officeData,
|
||||||
includeFields, excludeFields,
|
filterType, fieldList,
|
||||||
this.jsonFormattingService.isTrue(pretty));
|
this.jsonFormattingService.isTrue(pretty));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,26 +104,31 @@ public class OfficeApiResource {
|
|||||||
@QueryParam("template") String template,
|
@QueryParam("template") String template,
|
||||||
@QueryParam("pretty") String pretty) {
|
@QueryParam("pretty") String pretty) {
|
||||||
|
|
||||||
String includeFields = fields;
|
|
||||||
Set<String> excludeFields = new HashSet<String>();
|
|
||||||
OfficeData office = this.readPlatformService.retrieveOffice(officeId);
|
OfficeData office = this.readPlatformService.retrieveOffice(officeId);
|
||||||
|
|
||||||
|
String filterType = "E";
|
||||||
|
String fieldList = "";
|
||||||
|
if (this.jsonFormattingService.isPassed(fields)) {
|
||||||
|
filterType = "I";
|
||||||
|
fieldList = fields;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.jsonFormattingService.isTrue(template)) {
|
if (this.jsonFormattingService.isTrue(template)) {
|
||||||
office.setAllowedParents(this.readPlatformService
|
office.setAllowedParents(this.readPlatformService
|
||||||
.retrieveAllowedParents(officeId));
|
.retrieveAllowedParents(officeId));
|
||||||
|
|
||||||
if (this.jsonFormattingService.isPassed(includeFields)) {
|
if (this.jsonFormattingService.isPassed(fields)) {
|
||||||
includeFields += ",allowedParents";
|
fieldList += ",allowedParents";
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (!(this.jsonFormattingService.isPassed(includeFields))) {
|
if (!(this.jsonFormattingService.isPassed(fields))) {
|
||||||
excludeFields.add("allowedParents");
|
fieldList = "allowedParents";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.jsonFormattingService.convertDataObjectJSON(office,
|
return this.jsonFormattingService.convertDataObjectJSON(office,
|
||||||
includeFields, excludeFields,
|
filterType, fieldList,
|
||||||
this.jsonFormattingService.isTrue(pretty));
|
this.jsonFormattingService.isTrue(pretty));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -4,8 +4,8 @@ import java.util.Set;
|
|||||||
|
|
||||||
public interface ApiJSONFormattingService {
|
public interface ApiJSONFormattingService {
|
||||||
|
|
||||||
String convertDataObjectJSON(Object dataObject, String fields,
|
String convertDataObjectJSON(Object dataObject, String filterType,
|
||||||
Set<String> excludeFields, boolean prettyOutput);
|
String fields, boolean prettyOutput);
|
||||||
|
|
||||||
Boolean isTrue(String param);
|
Boolean isTrue(String param);
|
||||||
|
|
||||||
|
|||||||
+12
-18
@@ -13,44 +13,38 @@ import org.codehaus.jackson.map.ser.FilterProvider;
|
|||||||
import org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter;
|
import org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter;
|
||||||
import org.codehaus.jackson.map.ser.impl.SimpleFilterProvider;
|
import org.codehaus.jackson.map.ser.impl.SimpleFilterProvider;
|
||||||
import org.mifosng.platform.exceptions.PlatformInternalServerException;
|
import org.mifosng.platform.exceptions.PlatformInternalServerException;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
|
public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
|
||||||
|
|
||||||
private final static Logger logger = LoggerFactory
|
|
||||||
.getLogger(ApiJSONFormattingServiceImpl.class);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String convertDataObjectJSON(Object dataObject, String fields,
|
public String convertDataObjectJSON(Object dataObject, String filterType,
|
||||||
Set<String> excludeFields, boolean prettyOutput) {
|
String fields, boolean prettyOutput) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String json = "";
|
String json = "";
|
||||||
String myFilter = "myFilter";
|
String myFilter = "myFilter";
|
||||||
Set<String> includeFields = new HashSet<String>();
|
|
||||||
FilterProvider filters = null;
|
FilterProvider filters = null;
|
||||||
|
Set<String> filterFields = new HashSet<String>();
|
||||||
|
|
||||||
if (fields == null || fields.equals("")) {
|
StringTokenizer st = new StringTokenizer(fields, ",");
|
||||||
|
while (st.hasMoreTokens()) {
|
||||||
|
filterFields.add(st.nextToken().trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filterType.equals("I")) {
|
||||||
filters = new SimpleFilterProvider().addFilter(myFilter,
|
filters = new SimpleFilterProvider().addFilter(myFilter,
|
||||||
SimpleBeanPropertyFilter
|
SimpleBeanPropertyFilter
|
||||||
.serializeAllExcept(excludeFields));
|
.filterOutAllExcept(filterFields));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
StringTokenizer st = new StringTokenizer(fields, ",");
|
|
||||||
while (st.hasMoreTokens()) {
|
|
||||||
includeFields.add(st.nextToken().trim());
|
|
||||||
}
|
|
||||||
|
|
||||||
filters = new SimpleFilterProvider().addFilter(myFilter,
|
filters = new SimpleFilterProvider().addFilter(myFilter,
|
||||||
SimpleBeanPropertyFilter
|
SimpleBeanPropertyFilter
|
||||||
.filterOutAllExcept(includeFields));
|
.serializeAllExcept(filterFields));
|
||||||
}
|
}
|
||||||
ObjectWriter jsonWriter = null;
|
|
||||||
|
|
||||||
|
ObjectWriter jsonWriter = null;
|
||||||
if (prettyOutput) {
|
if (prettyOutput) {
|
||||||
jsonWriter = new ObjectMapper()
|
jsonWriter = new ObjectMapper()
|
||||||
.writerWithDefaultPrettyPrinter();
|
.writerWithDefaultPrettyPrinter();
|
||||||
|
|||||||
Reference in New Issue
Block a user