From a0ffaa1c0b9c05f4e23f04703c40c8f9adf0f755 Mon Sep 17 00:00:00 2001 From: viktorpavlenko Date: Mon, 17 Mar 2025 15:21:38 +0200 Subject: [PATCH] FINERACT-2214: Remove pretty print parameter from api and serialization; --- .../core/api/ApiParameterHelper.java | 9 --- .../core/api/ApiRequestParameterHelper.java | 8 +-- .../core/exception/ErrorHandler.java | 2 +- .../ApiRequestJsonSerializationSettings.java | 40 +++---------- .../DefaultToApiJsonSerializer.java | 57 +++---------------- ...ttyPrintingOnJsonSerializerGoogleGson.java | 46 --------------- .../GoogleGsonSerializerHelper.java | 17 +----- .../serialization/ToApiJsonSerializer.java | 2 - .../batch/exception/ErrorHandlerTest.java | 6 +- .../api/DatatablesApiResource.java | 18 +++--- .../api/EntityDatatableChecksApiResource.java | 7 +-- .../JsonDatatableReportExportService.java | 6 +- ...SavingsAccountTransactionsApiResource.java | 3 +- .../data/BusinessDataSerialized.java | 7 +-- 14 files changed, 37 insertions(+), 191 deletions(-) delete mode 100644 fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson.java diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiParameterHelper.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiParameterHelper.java index f9e0a5a77..e653f98bb 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiParameterHelper.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiParameterHelper.java @@ -79,15 +79,6 @@ public final class ApiParameterHelper { } } - public static boolean prettyPrint(final MultivaluedMap queryParams) { - boolean prettyPrint = false; - if (queryParams.getFirst("pretty") != null) { - final String prettyPrintValue = queryParams.getFirst("pretty"); - prettyPrint = "true".equalsIgnoreCase(prettyPrintValue); - } - return prettyPrint; - } - public static Locale extractLocale(final MultivaluedMap queryParams) { Locale locale = null; if (queryParams.getFirst("locale") != null) { diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiRequestParameterHelper.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiRequestParameterHelper.java index b658f7efa..7c254de3d 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiRequestParameterHelper.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiRequestParameterHelper.java @@ -38,27 +38,23 @@ public class ApiRequestParameterHelper { public ApiRequestJsonSerializationSettings process(final MultivaluedMap queryParameters, final Set mandatoryResponseParameters) { - final Set responseParameters = ApiParameterHelper.extractFieldsForResponseIfProvided(queryParameters); if (!responseParameters.isEmpty()) { responseParameters.addAll(mandatoryResponseParameters); } - final boolean prettyPrint = ApiParameterHelper.prettyPrint(queryParameters); final boolean template = ApiParameterHelper.template(queryParameters); final boolean makerCheckerable = ApiParameterHelper.makerCheckerable(queryParameters); final boolean includeJson = ApiParameterHelper.includeJson(queryParameters); - return ApiRequestJsonSerializationSettings.from(prettyPrint, responseParameters, template, makerCheckerable, includeJson); + return ApiRequestJsonSerializationSettings.from(responseParameters, template, makerCheckerable, includeJson); } public ApiRequestJsonSerializationSettings process(final MultivaluedMap queryParameters) { - final Set responseParameters = ApiParameterHelper.extractFieldsForResponseIfProvided(queryParameters); - final boolean prettyPrint = ApiParameterHelper.prettyPrint(queryParameters); final boolean template = ApiParameterHelper.template(queryParameters); final boolean makerCheckerable = ApiParameterHelper.makerCheckerable(queryParameters); final boolean includeJson = ApiParameterHelper.includeJson(queryParameters); - return ApiRequestJsonSerializationSettings.from(prettyPrint, responseParameters, template, makerCheckerable, includeJson); + return ApiRequestJsonSerializationSettings.from(responseParameters, template, makerCheckerable, includeJson); } } diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/exception/ErrorHandler.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/exception/ErrorHandler.java index f6ffb431c..448b438df 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/exception/ErrorHandler.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/exception/ErrorHandler.java @@ -66,7 +66,7 @@ import org.springframework.stereotype.Component; @AllArgsConstructor public final class ErrorHandler { - private static final Gson JSON_HELPER = GoogleGsonSerializerHelper.createGsonBuilder(true).create(); + private static final Gson JSON_HELPER = GoogleGsonSerializerHelper.createGsonBuilder().create(); private enum PessimisticLockingFailureCode { diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ApiRequestJsonSerializationSettings.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ApiRequestJsonSerializationSettings.java index 2104a63e3..876740626 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ApiRequestJsonSerializationSettings.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ApiRequestJsonSerializationSettings.java @@ -19,55 +19,29 @@ package org.apache.fineract.infrastructure.core.serialization; import java.util.Set; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * A class to encapsulate settings we allow on API that affect how JSON is to be serialized for the response to api * call. */ +@Getter +@RequiredArgsConstructor public class ApiRequestJsonSerializationSettings { - private final boolean prettyPrint; private final Set parametersForPartialResponse; private final boolean template; private final boolean makerCheckerable; private final boolean includeJson; - public ApiRequestJsonSerializationSettings(final boolean prettyPrint, final Set parametersForPartialResponse, - final boolean template, final boolean makerCheckerable, final boolean includeJson) { - this.prettyPrint = prettyPrint; - this.parametersForPartialResponse = parametersForPartialResponse; - this.template = template; - this.makerCheckerable = makerCheckerable; - this.includeJson = includeJson; - } - - public static ApiRequestJsonSerializationSettings from(final boolean prettyPrint, final Set parametersForPartialResponse, - final boolean template, final boolean makerCheckerable, final boolean includeJson) { + public static ApiRequestJsonSerializationSettings from(final Set parametersForPartialResponse, final boolean template, + final boolean makerCheckerable, final boolean includeJson) { // FIXME - KW - rather than always creating new objects for this could // just send by common ones like, prettyprint=false, empty response // parameters - return new ApiRequestJsonSerializationSettings(prettyPrint, parametersForPartialResponse, template, makerCheckerable, includeJson); - } - - public boolean isPrettyPrint() { - return this.prettyPrint; - } - - public boolean isTemplate() { - return this.template; - } - - public boolean isMakerCheckerable() { - return this.makerCheckerable; - } - - public boolean isIncludeJson() { - return this.includeJson; - } - - public Set getParametersForPartialResponse() { - return this.parametersForPartialResponse; + return new ApiRequestJsonSerializationSettings(parametersForPartialResponse, template, makerCheckerable, includeJson); } public boolean isPartialResponseRequired() { diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/DefaultToApiJsonSerializer.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/DefaultToApiJsonSerializer.java index 1cea0f608..47fad72b9 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/DefaultToApiJsonSerializer.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/DefaultToApiJsonSerializer.java @@ -33,16 +33,13 @@ import org.springframework.stereotype.Component; public class DefaultToApiJsonSerializer implements ToApiJsonSerializer { private final ExcludeNothingWithPrettyPrintingOffJsonSerializerGoogleGson excludeNothingWithPrettyPrintingOff; - private final ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson excludeNothingWithPrettyPrintingOn; private final CommandProcessingResultJsonSerializer commandProcessingResultSerializer; private final GoogleGsonSerializerHelper helper; @Autowired public DefaultToApiJsonSerializer(final ExcludeNothingWithPrettyPrintingOffJsonSerializerGoogleGson excludeNothingWithPrettyPrintingOff, - final ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson excludeNothingWithPrettyPrintingOn, final CommandProcessingResultJsonSerializer commandProcessingResultSerializer, final GoogleGsonSerializerHelper helper) { this.excludeNothingWithPrettyPrintingOff = excludeNothingWithPrettyPrintingOff; - this.excludeNothingWithPrettyPrintingOn = excludeNothingWithPrettyPrintingOn; this.commandProcessingResultSerializer = commandProcessingResultSerializer; this.helper = helper; } @@ -57,18 +54,6 @@ public class DefaultToApiJsonSerializer implements ToApiJsonSerializer { return this.excludeNothingWithPrettyPrintingOff.serialize(object); } - @Override - public String serializePretty(final boolean prettyOn, final Object object) { - String json = ""; - - if (prettyOn) { - json = this.excludeNothingWithPrettyPrintingOn.serialize(object); - } else { - json = serialize(object); - } - return json; - } - @Override public String serialize(final ApiRequestJsonSerializationSettings settings, final Collection collection, final Set supportedResponseParameters) { @@ -109,49 +94,23 @@ public class DefaultToApiJsonSerializer implements ToApiJsonSerializer { } private String serializeWithSettings(final Gson gson, final ApiRequestJsonSerializationSettings settings, final Object[] dataObject) { - String json = null; - if (gson != null) { - json = this.helper.serializedJsonFrom(gson, dataObject); - } else { - if (settings.isPrettyPrint()) { - json = this.excludeNothingWithPrettyPrintingOn.serialize(dataObject); - } else { - json = serialize(dataObject); - } - } - return json; + return gson != null ? this.helper.serializedJsonFrom(gson, dataObject) : serialize(dataObject); } private String serializeWithSettings(final Gson gson, final ApiRequestJsonSerializationSettings settings, final Object dataObject) { - String json = null; - if (gson != null) { - json = this.helper.serializedJsonFrom(gson, dataObject); - } else { - if (settings.isPrettyPrint()) { - json = this.excludeNothingWithPrettyPrintingOn.serialize(dataObject); - } else { - json = serialize(dataObject); - } - } - return json; + return gson != null ? this.helper.serializedJsonFrom(gson, dataObject) : serialize(dataObject); } private Gson findAppropriateSerializer(final ApiRequestJsonSerializationSettings settings, final Set supportedResponseParameters) { - Gson gson = null; - if (settings.isPartialResponseRequired()) { - gson = this.helper.createGsonBuilderWithParameterExclusionSerializationStrategy(supportedResponseParameters, - settings.isPrettyPrint(), settings.getParametersForPartialResponse()); - } - return gson; + + return settings.isPartialResponseRequired() ? this.helper.createGsonBuilderWithParameterExclusionSerializationStrategy( + supportedResponseParameters, settings.getParametersForPartialResponse()) : null; } private Gson findAppropriateSerializer(final ApiRequestJsonSerializationSettings settings) { - Gson gson = null; - if (settings.isPartialResponseRequired()) { - gson = this.helper.createGsonBuilderForPartialResponseFiltering(settings.isPrettyPrint(), - settings.getParametersForPartialResponse()); - } - return gson; + return settings.isPartialResponseRequired() + ? helper.createGsonBuilderForPartialResponseFiltering(settings.getParametersForPartialResponse()) + : null; } } diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson.java deleted file mode 100644 index 45cf00a16..000000000 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.fineract.infrastructure.core.serialization; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import org.springframework.stereotype.Component; - -/** - * A Google GSON implementation of contract. - * - * It serializes all fields of any Java {@link Object} passed to it. - */ -@Component -public final class ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson { - - private final Gson gson; - - public ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson() { - final GsonBuilder builder = new GsonBuilder(); - GoogleGsonSerializerHelper.registerTypeAdapters(builder); - builder.setPrettyPrinting(); - - this.gson = builder.create(); - } - - public String serialize(final Object result) { - return this.gson.toJson(result); - } -} diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/GoogleGsonSerializerHelper.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/GoogleGsonSerializerHelper.java index 146f44e0c..234a0046e 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/GoogleGsonSerializerHelper.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/GoogleGsonSerializerHelper.java @@ -50,19 +50,16 @@ import org.springframework.stereotype.Service; @Service public final class GoogleGsonSerializerHelper { - public Gson createGsonBuilderForPartialResponseFiltering(final boolean prettyPrint, final Set responseParameters) { + public Gson createGsonBuilderForPartialResponseFiltering(final Set responseParameters) { final ExclusionStrategy strategy = new ParameterListInclusionStrategy(responseParameters); final GsonBuilder builder = new GsonBuilder().addSerializationExclusionStrategy(strategy); registerTypeAdapters(builder); - if (prettyPrint) { - builder.setPrettyPrinting(); - } return builder.create(); } public Gson createGsonBuilderWithParameterExclusionSerializationStrategy(final Set supportedParameters, - final boolean prettyPrint, final Set responseParameters) { + final Set responseParameters) { final Set parameterNamesToSkip = new HashSet<>(); @@ -84,9 +81,6 @@ public final class GoogleGsonSerializerHelper { final GsonBuilder builder = new GsonBuilder().addSerializationExclusionStrategy(strategy); registerTypeAdapters(builder); - if (prettyPrint) { - builder.setPrettyPrinting(); - } return builder.create(); } @@ -103,15 +97,8 @@ public final class GoogleGsonSerializerHelper { } public static GsonBuilder createGsonBuilder() { - return createGsonBuilder(false); - } - - public static GsonBuilder createGsonBuilder(final boolean prettyPrint) { final GsonBuilder builder = new GsonBuilder(); registerTypeAdapters(builder); - if (prettyPrint) { - builder.setPrettyPrinting(); - } return builder; } diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ToApiJsonSerializer.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ToApiJsonSerializer.java index 1252af28e..310c92ebe 100644 --- a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ToApiJsonSerializer.java +++ b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/serialization/ToApiJsonSerializer.java @@ -26,8 +26,6 @@ public interface ToApiJsonSerializer { String serialize(Object object); - String serializePretty(boolean prettyOn, Object object); - String serializeResult(Object object); String serialize(ApiRequestJsonSerializationSettings settings, Collection collection); diff --git a/fineract-core/src/test/java/org/apache/fineract/batch/exception/ErrorHandlerTest.java b/fineract-core/src/test/java/org/apache/fineract/batch/exception/ErrorHandlerTest.java index 6bcb0675d..dfcb12d52 100644 --- a/fineract-core/src/test/java/org/apache/fineract/batch/exception/ErrorHandlerTest.java +++ b/fineract-core/src/test/java/org/apache/fineract/batch/exception/ErrorHandlerTest.java @@ -77,7 +77,7 @@ class ErrorHandlerTest { // then Assertions.assertEquals(1234, errorInfo.getErrorCode()); - Assertions.assertEquals("{\n \"Exception\": \"message body\"\n}", errorInfo.getMessage()); + Assertions.assertEquals("{\"Exception\":\"message body\"}", errorInfo.getMessage()); Assertions.assertEquals(406, errorInfo.getStatusCode()); Mockito.verifyNoMoreInteractions(exceptionMapper); Mockito.verifyNoInteractions(defaultExceptionMapper); @@ -104,7 +104,7 @@ class ErrorHandlerTest { // then Assertions.assertEquals(1234, errorInfo.getErrorCode()); - Assertions.assertEquals("{\n \"Exception\": \"message body\"\n}", errorInfo.getMessage()); + Assertions.assertEquals("{\"Exception\":\"message body\"}", errorInfo.getMessage()); Assertions.assertEquals(406, errorInfo.getStatusCode()); Mockito.verifyNoMoreInteractions(inputMismatchMapper); Mockito.verifyNoInteractions(exceptionMapper); @@ -129,7 +129,7 @@ class ErrorHandlerTest { // then Assertions.assertEquals(1234, errorInfo.getErrorCode()); - Assertions.assertEquals("{\n \"Exception\": \"message body\"\n}", errorInfo.getMessage()); + Assertions.assertEquals("{\"Exception\":\"message body\"}", errorInfo.getMessage()); Assertions.assertEquals(406, errorInfo.getStatusCode()); Mockito.verifyNoInteractions(exceptionMapper); Mockito.verifyNoMoreInteractions(defaultExceptionMapper); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DatatablesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DatatablesApiResource.java index d0ba53fc6..d36e01ea2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DatatablesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DatatablesApiResource.java @@ -89,8 +89,7 @@ public class DatatablesApiResource { final List result = this.readWriteNonCoreDataService.retrieveDatatableNames(apptable); - final boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()); - return this.toApiJsonSerializer.serializePretty(prettyPrint, result); + return this.toApiJsonSerializer.serialize(result); } @POST @@ -201,9 +200,7 @@ public class DatatablesApiResource { @Context final UriInfo uriInfo) { final DatatableData result = this.readWriteNonCoreDataService.retrieveDatatable(datatable); - - final boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()); - return this.toApiJsonSerializer.serializePretty(prettyPrint, result); + return this.toApiJsonSerializer.serialize(result); } @GET @@ -222,7 +219,7 @@ public class DatatablesApiResource { final List result = this.readWriteNonCoreDataService.queryDataTable(datatable, columnFilter, valueFilter, resultColumns); - return this.toApiJsonSerializer.serializePretty(ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()), result); + return this.toApiJsonSerializer.serialize(result); } @POST @@ -235,7 +232,7 @@ public class DatatablesApiResource { public String advancedQuery(@PathParam("datatable") @Parameter(description = "datatable") final String datatable, PagedLocalRequest queryRequest, @Context final UriInfo uriInfo) { final Page result = this.readWriteNonCoreDataService.queryDataTableAdvanced(datatable, queryRequest); - return this.toApiJsonSerializer.serializePretty(ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()), result); + return this.toApiJsonSerializer.serialize(result); } @GET @@ -263,8 +260,8 @@ public class DatatablesApiResource { String json = ""; final boolean genericResultSet = ApiParameterHelper.genericResultSet(uriInfo.getQueryParameters()); if (genericResultSet) { - final boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()); - json = this.toApiJsonSerializer.serializePretty(prettyPrint, results); + + json = toApiJsonSerializer.serialize(results); } else { json = this.genericDataService.generateJsonFromGenericResultsetData(results); } @@ -288,8 +285,7 @@ public class DatatablesApiResource { String json = ""; if (genericResultSet) { - final boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()); - json = this.toApiJsonSerializer.serializePretty(prettyPrint, results); + json = toApiJsonSerializer.serialize(results); } else { json = this.genericDataService.generateJsonFromGenericResultsetData(results); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/EntityDatatableChecksApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/EntityDatatableChecksApiResource.java index a51bad1db..073436bbc 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/EntityDatatableChecksApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/EntityDatatableChecksApiResource.java @@ -42,7 +42,6 @@ import lombok.RequiredArgsConstructor; import org.apache.fineract.commands.domain.CommandWrapper; import org.apache.fineract.commands.service.CommandWrapperBuilder; import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService; -import org.apache.fineract.infrastructure.core.api.ApiParameterHelper; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; import org.apache.fineract.infrastructure.core.serialization.ToApiJsonSerializer; import org.apache.fineract.infrastructure.core.service.Page; @@ -81,8 +80,7 @@ public class EntityDatatableChecksApiResource { final Page result = this.readEntityDatatableChecksService.retrieveAll(searchParameters, status, entity, productId); - final boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()); - return this.toApiJsonSerializer.serializePretty(prettyPrint, result); + return this.toApiJsonSerializer.serialize(result); } @GET @@ -97,8 +95,7 @@ public class EntityDatatableChecksApiResource { final EntityDataTableChecksTemplateData result = this.readEntityDatatableChecksService.retrieveTemplate(); - final boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()); - return this.toApiJsonSerializer.serializePretty(prettyPrint, result); + return this.toApiJsonSerializer.serialize(result); } @POST diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/export/JsonDatatableReportExportService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/export/JsonDatatableReportExportService.java index 1c38adf03..4a75ea6aa 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/export/JsonDatatableReportExportService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/export/JsonDatatableReportExportService.java @@ -46,19 +46,17 @@ public class JsonDatatableReportExportService implements DatatableReportExportSe final GenericResultsetData result = this.readExtraDataAndReportingService.retrieveGenericResultset(reportName, parameterTypeValue, reportParams, isSelfServiceUserReport); - DatatableExportTargetParameter exportMode = DatatableExportTargetParameter.resolverExportTarget(queryParams); - boolean prettyPrint = exportMode == DatatableExportTargetParameter.PRETTY_JSON; String json; final boolean genericResultSetIsPassed = ApiParameterHelper.genericResultSetPassed(queryParams); final boolean genericResultSet = ApiParameterHelper.genericResultSet(queryParams); if (genericResultSetIsPassed) { if (genericResultSet) { - json = this.toApiJsonSerializer.serializePretty(prettyPrint, result); + json = this.toApiJsonSerializer.serialize(result); } else { json = this.genericDataService.generateJsonFromGenericResultsetData(result); } } else { - json = this.toApiJsonSerializer.serializePretty(prettyPrint, result); + json = this.toApiJsonSerializer.serialize(result); } return new ResponseHolder(Response.Status.OK).entity(json).contentType(MediaType.APPLICATION_JSON); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountTransactionsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountTransactionsApiResource.java index 95d346487..3602a9316 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountTransactionsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountTransactionsApiResource.java @@ -47,7 +47,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.fineract.commands.domain.CommandWrapper; import org.apache.fineract.commands.service.CommandWrapperBuilder; import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService; -import org.apache.fineract.infrastructure.core.api.ApiParameterHelper; import org.apache.fineract.infrastructure.core.api.ApiRequestParameterHelper; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; import org.apache.fineract.infrastructure.core.exception.UnrecognizedQueryParamException; @@ -171,7 +170,7 @@ public class SavingsAccountTransactionsApiResource { public String advancedQuery(@PathParam("savingsId") @Parameter(description = "savingsId") final Long savingsId, PagedLocalRequest queryRequest, @Context final UriInfo uriInfo) { final Page result = transactionsSearchService.queryAdvanced(savingsId, queryRequest); - return this.toApiJsonSerializer.serializePretty(ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters()), result); + return this.toApiJsonSerializer.serialize(result); } @POST diff --git a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/data/BusinessDataSerialized.java b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/data/BusinessDataSerialized.java index 59c06a596..b142fc83b 100644 --- a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/data/BusinessDataSerialized.java +++ b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/data/BusinessDataSerialized.java @@ -26,7 +26,6 @@ import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType; import org.apache.fineract.infrastructure.core.serialization.CommandProcessingResultJsonSerializer; import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer; import org.apache.fineract.infrastructure.core.serialization.ExcludeNothingWithPrettyPrintingOffJsonSerializerGoogleGson; -import org.apache.fineract.infrastructure.core.serialization.ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson; import org.apache.fineract.infrastructure.core.serialization.GoogleGsonSerializerHelper; import org.junit.jupiter.api.Test; @@ -35,8 +34,7 @@ public class BusinessDataSerialized { @Test public void serializeBusinessDateData() { DefaultToApiJsonSerializer jsonSerializer = new DefaultToApiJsonSerializer<>( - new ExcludeNothingWithPrettyPrintingOffJsonSerializerGoogleGson(), - new ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson(), new CommandProcessingResultJsonSerializer(), + new ExcludeNothingWithPrettyPrintingOffJsonSerializerGoogleGson(), new CommandProcessingResultJsonSerializer(), new GoogleGsonSerializerHelper()); LocalDate now = LocalDate.now(ZoneId.systemDefault()); @@ -49,8 +47,7 @@ public class BusinessDataSerialized { @Test public void serializeBusinessDateData_COB() { DefaultToApiJsonSerializer jsonSerializer = new DefaultToApiJsonSerializer<>( - new ExcludeNothingWithPrettyPrintingOffJsonSerializerGoogleGson(), - new ExcludeNothingWithPrettyPrintingOnJsonSerializerGoogleGson(), new CommandProcessingResultJsonSerializer(), + new ExcludeNothingWithPrettyPrintingOffJsonSerializerGoogleGson(), new CommandProcessingResultJsonSerializer(), new GoogleGsonSerializerHelper()); LocalDate now = LocalDate.now(ZoneId.systemDefault());