From 7cf6c20b3863139d861f99937f245ad0c2a38c00 Mon Sep 17 00:00:00 2001 From: John Woodlock Date: Tue, 2 Apr 2013 01:51:29 +0100 Subject: [PATCH] wip mifosx-97 refactor audit/makerchecker functions --- .../audit/api/AuditApiResource.java | 4 +-- .../service/AuditReadPlatformService.java | 2 +- .../service/AuditReadPlatformServiceImpl.java | 18 ++++++++---- .../commands/api/CommandsApiResource.java | 28 ++++++++++++++++++- 4 files changed, 43 insertions(+), 9 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/audit/api/AuditApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/audit/api/AuditApiResource.java index f45081002..b8ea039d3 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/audit/api/AuditApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/audit/api/AuditApiResource.java @@ -130,10 +130,10 @@ public class AuditApiResource { .process(uriInfo.getQueryParameters()); final AuditSearchData auditSearchData = this.auditReadPlatformService - .retrieveSearchTemplate(); + .retrieveSearchTemplate("audit"); final Set RESPONSE_DATA_PARAMETERS_SEARCH_TEMPLATE = new HashSet( - Arrays.asList("appUsers", "apiOperations", "resources")); + Arrays.asList("appUsers", "actionNames", "entityNames", "processingResults")); return this.toApiJsonSerializerSearchTemplate.serialize(settings, auditSearchData, RESPONSE_DATA_PARAMETERS_SEARCH_TEMPLATE); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/audit/service/AuditReadPlatformService.java b/mifosng-provider/src/main/java/org/mifosplatform/audit/service/AuditReadPlatformService.java index 198cfca84..77b2014d6 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/audit/service/AuditReadPlatformService.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/audit/service/AuditReadPlatformService.java @@ -16,7 +16,7 @@ public interface AuditReadPlatformService { AuditData retrieveAuditEntry(Long auditId); - AuditSearchData retrieveSearchTemplate(); + AuditSearchData retrieveSearchTemplate(String useType); Collection retrieveAllEntriesToBeChecked(); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/audit/service/AuditReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/audit/service/AuditReadPlatformServiceImpl.java index 8745d9dd8..cd84385f6 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/audit/service/AuditReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/audit/service/AuditReadPlatformServiceImpl.java @@ -16,6 +16,7 @@ import org.mifosplatform.audit.api.ProcessingResultLookup; import org.mifosplatform.audit.data.AuditData; import org.mifosplatform.audit.data.AuditSearchData; import org.mifosplatform.infrastructure.core.domain.JdbcSupport; +import org.mifosplatform.infrastructure.core.exception.PlatformDataIntegrityException; import org.mifosplatform.infrastructure.core.service.TenantAwareRoutingDataSource; import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext; import org.mifosplatform.useradministration.data.AppUserData; @@ -141,7 +142,12 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { } @Override - public AuditSearchData retrieveSearchTemplate() { + public AuditSearchData retrieveSearchTemplate(String useType) { + + if (!(useType.equals("audit") || useType.equals("makerchecker"))) { + throw new PlatformDataIntegrityException("error.msg.invalid.auditSearchTemplate.useType", + "Invalid Audit Search Template UseType: " + useType); } + final Collection appUsers = appUserReadPlatformService .retrieveSearchTemplate(); @@ -153,10 +159,12 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { List entityNames = this.jdbcTemplate.query(mapper2.schema(), mapper2, new Object[] {}); - ProcessingResultsMapper mapper3 = new ProcessingResultsMapper(); - Collection processingResults = this.jdbcTemplate - .query(mapper3.schema(), mapper3, new Object[] {}); - + Collection processingResults = null; + if (useType.equals("audit")) { + ProcessingResultsMapper mapper3 = new ProcessingResultsMapper(); + processingResults = this.jdbcTemplate.query(mapper3.schema(), mapper3, new Object[] {}); + } + return new AuditSearchData(appUsers, actionNames, entityNames, processingResults); } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/commands/api/CommandsApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/commands/api/CommandsApiResource.java index a7d80e02f..c79571ed4 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/commands/api/CommandsApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/commands/api/CommandsApiResource.java @@ -24,6 +24,7 @@ import javax.ws.rs.core.UriInfo; import org.apache.commons.lang.StringUtils; import org.mifosplatform.audit.data.AuditData; +import org.mifosplatform.audit.data.AuditSearchData; import org.mifosplatform.audit.service.AuditReadPlatformService; import org.mifosplatform.commands.data.CommandSourceData; import org.mifosplatform.commands.service.PortfolioCommandSourceWritePlatformService; @@ -52,18 +53,21 @@ public class CommandsApiResource { private final AuditReadPlatformService readPlatformService; private final DefaultToApiJsonSerializer toApiJsonSerializer; private final DefaultToApiJsonSerializer toApiJsonSerializerAudit; + private final DefaultToApiJsonSerializer toApiJsonSerializerSearchTemplate; private final ApiRequestParameterHelper apiRequestParameterHelper; private final PortfolioCommandSourceWritePlatformService writePlatformService; @Autowired public CommandsApiResource(final PlatformSecurityContext context, final AuditReadPlatformService readPlatformService, - final DefaultToApiJsonSerializer toApiJsonSerializer, final DefaultToApiJsonSerializer toApiJsonSerializerAudit, + final DefaultToApiJsonSerializer toApiJsonSerializer, final DefaultToApiJsonSerializer toApiJsonSerializerAudit, + final DefaultToApiJsonSerializer toApiJsonSerializerSearchTemplate, final ApiRequestParameterHelper apiRequestParameterHelper, final PortfolioCommandSourceWritePlatformService writePlatformService) { this.context = context; this.readPlatformService = readPlatformService; this.toApiJsonSerializer = toApiJsonSerializer; this.apiRequestParameterHelper = apiRequestParameterHelper; this.toApiJsonSerializerAudit = toApiJsonSerializerAudit; + this.toApiJsonSerializerSearchTemplate = toApiJsonSerializerSearchTemplate; this.writePlatformService = writePlatformService; } @@ -80,6 +84,28 @@ public class CommandsApiResource { return this.toApiJsonSerializerAudit.serialize(settings, entries, RESPONSE_DATA_PARAMETERS); } + @GET + @Path("/searchtemplate") + @Consumes({ MediaType.APPLICATION_JSON }) + @Produces({ MediaType.APPLICATION_JSON }) + public String retrieveAuditSearchTemplate(@Context final UriInfo uriInfo) { + + context.authenticatedUser().validateHasReadPermission( + resourceNameForPermissions); + + final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper + .process(uriInfo.getQueryParameters()); + + final AuditSearchData auditSearchData = this.readPlatformService + .retrieveSearchTemplate("makerchecker"); + + final Set RESPONSE_DATA_PARAMETERS_SEARCH_TEMPLATE = new HashSet( + Arrays.asList("appUsers", "actionNames", "entityNames")); + + return this.toApiJsonSerializerSearchTemplate.serialize(settings, + auditSearchData, RESPONSE_DATA_PARAMETERS_SEARCH_TEMPLATE); + } + @POST @Path("{commandId}") @Consumes({ MediaType.APPLICATION_JSON })