diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/AdditionalFieldsApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/AdditionalFieldsApiResource.java index b2b821eba..b47a82119 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/AdditionalFieldsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/AdditionalFieldsApiResource.java @@ -13,9 +13,11 @@ import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; +import javax.ws.rs.core.UriInfo; import org.codehaus.jettison.json.JSONArray; import org.codehaus.jettison.json.JSONException; @@ -42,6 +44,8 @@ public class AdditionalFieldsApiResource { private final static Logger logger = LoggerFactory .getLogger(AdditionalFieldsApiResource.class); + private String allowedFieldList = ""; + @Autowired private ReadExtraDataAndReportingService readExtraDataAndReportingService; @@ -52,22 +56,14 @@ public class AdditionalFieldsApiResource { @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @Produces({ MediaType.APPLICATION_JSON }) public String datasets(@QueryParam("type") String type, - @QueryParam("fields") String fields, - @QueryParam("pretty") String pretty) { + @Context UriInfo uriInfo) { List result = this.readExtraDataAndReportingService .retrieveExtraDatasetNames(type); - 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)); + String selectedFields = ""; + return this.jsonFormattingService.convertRequest(result, + allowedFieldList, selectedFields, uriInfo.getQueryParameters()); } @GET @@ -76,18 +72,16 @@ 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, - @QueryParam("pretty") String pretty) { + @Context UriInfo uriInfo) { try { GenericResultset result = this.readExtraDataAndReportingService .retrieveExtraData(type, set, id); - String filterType = "E"; - String fieldList = ""; - - return this.jsonFormattingService.convertDataObjectJSON(result, - filterType, fieldList, - this.jsonFormattingService.isTrue(pretty)); + String selectedFields = ""; + return this.jsonFormattingService.convertRequest(result, + allowedFieldList, selectedFields, + uriInfo.getQueryParameters()); } catch (InvalidSqlException e) { List dataValidationErrors = new ArrayList(); ApiParameterError error = ApiParameterError.parameterError( diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficeApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficeApiResource.java index 5295b0725..8194ef192 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficeApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/OfficeApiResource.java @@ -96,8 +96,7 @@ public class OfficeApiResource { @QueryParam("template") String template, @Context UriInfo uriInfo) { OfficeData office = this.readPlatformService.retrieveOffice(officeId); - - if (this.jsonFormattingService.isTrue(template)) { + if (template != null && template.equalsIgnoreCase("true")) { office.setAllowedParents(this.readPlatformService .retrieveAllowedParents(officeId)); } diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJSONFormattingService.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJSONFormattingService.java index 21a306090..bab411f1f 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJSONFormattingService.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJSONFormattingService.java @@ -7,11 +7,4 @@ public interface ApiJSONFormattingService { String convertRequest(Object dataObject, String allowedFieldList, String selectedFields, MultivaluedMap queryParams); - String convertDataObjectJSON(Object dataObject, String filterType, - String fields, boolean prettyOutput); - - Boolean isTrue(String param); - - Boolean isPassed(String param); - } diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJSONFormattingServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJSONFormattingServiceImpl.java index 966ef7065..227352d0e 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJSONFormattingServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/infrastructure/ApiJSONFormattingServiceImpl.java @@ -45,11 +45,12 @@ public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService { while (st.hasMoreTokens()) { selectedFieldsSet.add(st.nextToken().trim()); } - + for (String paramField : paramFieldsSet) { - if (selectedFieldsSet.contains(paramField)) fieldList += paramField; + if (selectedFieldsSet.contains(paramField)) + fieldList += paramField; } - + } } else { fieldList = selectedFields; @@ -69,8 +70,7 @@ public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService { isTrue(queryParams.getFirst("pretty"))); } - @Override - public String convertDataObjectJSON(Object dataObject, String filterType, + private String convertDataObjectJSON(Object dataObject, String filterType, String fields, boolean prettyOutput) { try { @@ -124,16 +124,14 @@ public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService { } } - @Override - public Boolean isTrue(String param) { + private Boolean isTrue(String param) { if (param != null && param.equalsIgnoreCase("true")) return true; else return false; } - @Override - public Boolean isPassed(String param) { + private Boolean isPassed(String param) { if (param == null || param.equals("")) return false; else