diff --git a/mifosng-provider/gradle.properties b/mifosng-provider/gradle.properties index d76fca035..b7f5d2259 100644 --- a/mifosng-provider/gradle.properties +++ b/mifosng-provider/gradle.properties @@ -1 +1 @@ -releaseVersion=1.2.0.RELEASE +releaseVersion=1.2.0.RELEASE \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/accounting/journalentry/api/JournalEntriesApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/accounting/journalentry/api/JournalEntriesApiResource.java index 96ba0e0e8..79ac08216 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/accounting/journalentry/api/JournalEntriesApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/accounting/journalentry/api/JournalEntriesApiResource.java @@ -73,11 +73,12 @@ public class JournalEntriesApiResource { @GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String retrieveAll(@QueryParam("officeId") final Long officeId, @QueryParam("glAccountId") final Long glAccountId, - @QueryParam("manualEntriesOnly") final Boolean onlyManualEntries, @QueryParam("fromDate") final DateParam fromDateParam, - @QueryParam("toDate") final DateParam toDateParam, @QueryParam("transactionId") final String transactionId, - @QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit, - @QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder) { + public String retrieveAll(@Context final UriInfo uriInfo, @QueryParam("officeId") final Long officeId, + @QueryParam("glAccountId") final Long glAccountId, @QueryParam("manualEntriesOnly") final Boolean onlyManualEntries, + @QueryParam("fromDate") final DateParam fromDateParam, @QueryParam("toDate") final DateParam toDateParam, + @QueryParam("transactionId") final String transactionId, @QueryParam("offset") final Integer offset, + @QueryParam("limit") final Integer limit, @QueryParam("orderBy") final String orderBy, + @QueryParam("sortOrder") final String sortOrder) { this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission); @@ -94,7 +95,8 @@ public class JournalEntriesApiResource { Page glJournalEntries = this.journalEntryReadPlatformService.retrieveAll(searchParameters, glAccountId, onlyManualEntries, fromDate, toDate, transactionId); - return this.apiJsonSerializerService.serialize(glJournalEntries); + final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters()); + return this.apiJsonSerializerService.serialize(settings, glJournalEntries, RESPONSE_DATA_PARAMETERS); } @GET diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/serialization/DefaultToApiJsonSerializer.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/serialization/DefaultToApiJsonSerializer.java index ecdc8316a..ae77e6deb 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/serialization/DefaultToApiJsonSerializer.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/serialization/DefaultToApiJsonSerializer.java @@ -8,6 +8,7 @@ package org.mifosplatform.infrastructure.core.serialization; import java.util.Collection; import java.util.Set; +import org.mifosplatform.infrastructure.core.service.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -73,6 +74,12 @@ public final class DefaultToApiJsonSerializer implements ToApiJsonSerializer< return serializeWithSettings(delegatedSerializer, settings, singleObject); } + @Override + public String serialize(ApiRequestJsonSerializationSettings settings, Page singleObject, Set supportedResponseParameters) { + final Gson delegatedSerializer = findAppropriateSerializer(settings, supportedResponseParameters); + return serializeWithSettings(delegatedSerializer, settings, singleObject); + } + private String serializeWithSettings(final Gson gson, final ApiRequestJsonSerializationSettings settings, final Object[] dataObject) { String json = null; if (gson != null) { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/serialization/ToApiJsonSerializer.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/serialization/ToApiJsonSerializer.java index 0e4bb8163..44796bd2a 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/serialization/ToApiJsonSerializer.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/serialization/ToApiJsonSerializer.java @@ -8,6 +8,8 @@ package org.mifosplatform.infrastructure.core.serialization; import java.util.Collection; import java.util.Set; +import org.mifosplatform.infrastructure.core.service.Page; + public interface ToApiJsonSerializer { String serialize(Object object); @@ -19,4 +21,6 @@ public interface ToApiJsonSerializer { String serialize(ApiRequestJsonSerializationSettings settings, Collection collection, Set supportedResponseParameters); String serialize(ApiRequestJsonSerializationSettings settings, T single, Set supportedResponseParameters); + + String serialize(ApiRequestJsonSerializationSettings settings, Page singleObject, Set supportedResponseParameters); } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientsApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientsApiResource.java index 5165ac244..d23ae34c4 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientsApiResource.java @@ -90,12 +90,12 @@ public class ClientsApiResource { @GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String retrieveAll(@QueryParam("sqlSearch") final String sqlSearch, @QueryParam("officeId") final Long officeId, - @QueryParam("externalId") final String externalId, @QueryParam("displayName") final String displayName, - @QueryParam("firstName") final String firstname, @QueryParam("lastName") final String lastname, - @QueryParam("underHierarchy") final String hierarchy, @QueryParam("offset") final Integer offset, - @QueryParam("limit") final Integer limit, @QueryParam("orderBy") final String orderBy, - @QueryParam("sortOrder") final String sortOrder) { + public String retrieveAll(@Context final UriInfo uriInfo, @QueryParam("sqlSearch") final String sqlSearch, + @QueryParam("officeId") final Long officeId, @QueryParam("externalId") final String externalId, + @QueryParam("displayName") final String displayName, @QueryParam("firstName") final String firstname, + @QueryParam("lastName") final String lastname, @QueryParam("underHierarchy") final String hierarchy, + @QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit, + @QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder) { context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_RESOURCE_NAME); @@ -103,7 +103,9 @@ public class ClientsApiResource { lastname, hierarchy, offset, limit, orderBy, sortOrder); final Page clientData = this.clientReadPlatformService.retrieveAll(searchParameters); - return this.toApiJsonSerializer.serialize(clientData); + + final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters()); + return this.toApiJsonSerializer.serialize(settings, clientData , ClientApiConstants.CLIENT_RESPONSE_DATA_PARAMETERS); } @GET diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/CentersApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/CentersApiResource.java index 9ad7f4f31..155e28d52 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/CentersApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/CentersApiResource.java @@ -102,18 +102,20 @@ public class CentersApiResource { @GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String retrieveAll(@QueryParam("sqlSearch") final String sqlSearch, @QueryParam("officeId") final Long officeId, - @QueryParam("externalId") final String externalId, @QueryParam("name") final String name, - @QueryParam("underHierarchy") final String hierarchy, @QueryParam("offset") final Integer offset, - @QueryParam("limit") final Integer limit, @QueryParam("orderBy") final String orderBy, - @QueryParam("sortOrder") final String sortOrder) { + public String retrieveAll(@Context final UriInfo uriInfo, @QueryParam("sqlSearch") final String sqlSearch, + @QueryParam("officeId") final Long officeId, @QueryParam("externalId") final String externalId, + @QueryParam("name") final String name, @QueryParam("underHierarchy") final String hierarchy, + @QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit, + @QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder) { this.context.authenticatedUser().validateHasReadPermission(GroupingTypesApiConstants.CENTER_RESOURCE_NAME); final SearchParameters searchParameters = SearchParameters.forGroups(sqlSearch, officeId, externalId, name, hierarchy, offset, limit, orderBy, sortOrder); - final Page groups = this.centerReadPlatformService.retrieveAll(searchParameters); - return this.centerApiJsonSerializer.serialize(groups); + final Page centers = this.centerReadPlatformService.retrieveAll(searchParameters); + + final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters()); + return this.toApiJsonSerializer.serialize(settings, centers, GroupingTypesApiConstants.CENTER_RESPONSE_DATA_PARAMETERS); } @GET diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/GroupsApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/GroupsApiResource.java index f1833ad25..d2af43983 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/GroupsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/api/GroupsApiResource.java @@ -118,7 +118,7 @@ public class GroupsApiResource { @GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String retrieveAll(@QueryParam("sqlSearch") final String sqlSearch, + public String retrieveAll(@Context final UriInfo uriInfo, @QueryParam("sqlSearch") final String sqlSearch, @QueryParam("officeId") final Long officeId, @QueryParam("externalId") final String externalId, @QueryParam("name") final String name, @QueryParam("underHierarchy") final String hierarchy, @QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit, @@ -129,7 +129,9 @@ public class GroupsApiResource { final SearchParameters searchParameters = SearchParameters.forGroups(sqlSearch, officeId, externalId, name, hierarchy, offset, limit, orderBy, sortOrder); final Page groups = this.groupReadPlatformService.retrieveAll(searchParameters); - return this.groupGeneralApiJsonSerializer.serialize(groups); + + final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters()); + return this.toApiJsonSerializer.serialize(settings, groups, GroupingTypesApiConstants.GROUP_RESPONSE_DATA_PARAMETERS); } @GET diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/api/LoansApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/api/LoansApiResource.java index 8d1d8724f..3059f5df6 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/api/LoansApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/api/LoansApiResource.java @@ -362,17 +362,19 @@ public class LoansApiResource { @GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String retrieveAll(@QueryParam("sqlSearch") final String sqlSearch, @QueryParam("externalId") final String externalId, - @QueryParam("underHierarchy") final String hierarchy, @QueryParam("offset") final Integer offset, - @QueryParam("limit") final Integer limit, @QueryParam("orderBy") final String orderBy, - @QueryParam("sortOrder") final String sortOrder) { + public String retrieveAll(@Context final UriInfo uriInfo, @QueryParam("sqlSearch") final String sqlSearch, + @QueryParam("externalId") final String externalId, @QueryParam("underHierarchy") final String hierarchy, + @QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit, + @QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder) { context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions); final SearchParameters searchParameters = SearchParameters.forLoans(sqlSearch, externalId, offset, limit, orderBy, sortOrder); final Page loanBasicDetails = this.loanReadPlatformService.retrieveAll(searchParameters); - return this.toApiJsonSerializer.serialize(loanBasicDetails); + + final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters()); + return this.toApiJsonSerializer.serialize(settings, loanBasicDetails, LOAN_DATA_PARAMETERS); } @POST