From 0637fb2697d444dc736c887ba5abb220e354165a Mon Sep 17 00:00:00 2001 From: John Woodlock Date: Fri, 29 Mar 2013 23:48:12 +0000 Subject: [PATCH] wip mifosx-97 refactor audit/makerchecker for re-use --- .../audit/api/AuditApiResource.java | 8 ++++---- .../service/AuditReadPlatformService.java | 2 ++ .../service/AuditReadPlatformServiceImpl.java | 16 ++++++++++++++- .../commands/api/CommandsApiResource.java | 20 ++++++++++++------- .../PortfolioCommandsReadPlatformService.java | 2 -- ...tfolioCommandsReadPlatformServiceImpl.java | 10 ---------- 6 files changed, 34 insertions(+), 24 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 1fa2dc4aa..f45081002 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 @@ -39,10 +39,10 @@ import org.springframework.stereotype.Component; public class AuditApiResource { private final Set RESPONSE_DATA_PARAMETERS = new HashSet( - Arrays.asList("id", "apiOperation", "resource", "resourceId", - "maker", "madeOnDate", "checker", "checkedOnDate", - "commandAsJson")); - + Arrays.asList("id", "actionName", "entityName", "resourceId", "subresourceId", + "maker", "madeOnDate", "checker", "checkedOnDate", "processingResult", + "commandAsJson", "officeName", "groupLevelName", "groupName", "clientName", "loanAccountNo", "savingsAccountNo")); + private final String resourceNameForPermissions = "AUDIT"; private final PlatformSecurityContext context; 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 019432f69..198cfca84 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 @@ -18,4 +18,6 @@ public interface AuditReadPlatformService { AuditSearchData retrieveSearchTemplate(); + Collection retrieveAllEntriesToBeChecked(); + } \ No newline at end of file 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 a0ee8479e..8745d9dd8 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 @@ -46,7 +46,7 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { } private static final class AuditMapper implements RowMapper { - +//TODO - jpw need to break this down, also data scope etc. public String schema(boolean includeJson) { String commandAsJsonString = ""; @@ -161,6 +161,20 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { processingResults); } + @Override + public Collection retrieveAllEntriesToBeChecked() { + context.authenticatedUser(); + + final AuditMapper rm = new AuditMapper(); + + final String sql = "select " + rm.schema(false) + + " where aud.checker_id is null and aud.processing_result_enum = 2 order by aud.id"; + //+ " where mc.checker_id is null and mc.processing_result_enum = 2 order by mc.made_on_date DESC, mc.entity_name ASC, mc.action_name ASC"; + logger.info("sql: " + sql); + + return this.jdbcTemplate.query(sql, rm, new Object[] {}); + } + private static final class ActionNamesMapper implements RowMapper { @Override 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 775f333ea..a7d80e02f 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 @@ -23,9 +23,10 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; import org.apache.commons.lang.StringUtils; +import org.mifosplatform.audit.data.AuditData; +import org.mifosplatform.audit.service.AuditReadPlatformService; import org.mifosplatform.commands.data.CommandSourceData; import org.mifosplatform.commands.service.PortfolioCommandSourceWritePlatformService; -import org.mifosplatform.commands.service.PortfolioCommandsReadPlatformService; import org.mifosplatform.infrastructure.core.api.ApiRequestParameterHelper; import org.mifosplatform.infrastructure.core.data.CommandProcessingResult; import org.mifosplatform.infrastructure.core.exception.UnrecognizedQueryParamException; @@ -41,23 +42,28 @@ import org.springframework.stereotype.Component; @Scope("singleton") public class CommandsApiResource { - private final Set RESPONSE_DATA_PARAMETERS = new HashSet(Arrays.asList("id", "taskName", "madeOnDate")); + private final Set RESPONSE_DATA_PARAMETERS = new HashSet( + Arrays.asList("id", "actionName", "entityName", "resourceId", "subresourceId", + "maker", "madeOnDate", "checker", "checkedOnDate", "processingResult", + "commandAsJson", "officeName", "groupLevelName", "groupName", "clientName", "loanAccountNo", "savingsAccountNo")); private final String resourceNameForPermissions = "MAKERCHECKER"; private final PlatformSecurityContext context; - private final PortfolioCommandsReadPlatformService readPlatformService; + private final AuditReadPlatformService readPlatformService; private final DefaultToApiJsonSerializer toApiJsonSerializer; + private final DefaultToApiJsonSerializer toApiJsonSerializerAudit; private final ApiRequestParameterHelper apiRequestParameterHelper; private final PortfolioCommandSourceWritePlatformService writePlatformService; @Autowired - public CommandsApiResource(final PlatformSecurityContext context, final PortfolioCommandsReadPlatformService readPlatformService, - final DefaultToApiJsonSerializer toApiJsonSerializer, + public CommandsApiResource(final PlatformSecurityContext context, final AuditReadPlatformService readPlatformService, + final DefaultToApiJsonSerializer toApiJsonSerializer, final DefaultToApiJsonSerializer toApiJsonSerializerAudit, final ApiRequestParameterHelper apiRequestParameterHelper, final PortfolioCommandSourceWritePlatformService writePlatformService) { this.context = context; this.readPlatformService = readPlatformService; this.toApiJsonSerializer = toApiJsonSerializer; this.apiRequestParameterHelper = apiRequestParameterHelper; + this.toApiJsonSerializerAudit = toApiJsonSerializerAudit; this.writePlatformService = writePlatformService; } @@ -68,10 +74,10 @@ public class CommandsApiResource { context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions); - final Collection entries = this.readPlatformService.retrieveAllEntriesToBeChecked(); + final Collection entries = this.readPlatformService.retrieveAllEntriesToBeChecked(); final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters()); - return this.toApiJsonSerializer.serialize(settings, entries, RESPONSE_DATA_PARAMETERS); + return this.toApiJsonSerializerAudit.serialize(settings, entries, RESPONSE_DATA_PARAMETERS); } @POST diff --git a/mifosng-provider/src/main/java/org/mifosplatform/commands/service/PortfolioCommandsReadPlatformService.java b/mifosng-provider/src/main/java/org/mifosplatform/commands/service/PortfolioCommandsReadPlatformService.java index 84285a05d..def300550 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/commands/service/PortfolioCommandsReadPlatformService.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/commands/service/PortfolioCommandsReadPlatformService.java @@ -11,8 +11,6 @@ import org.mifosplatform.commands.data.CommandSourceData; public interface PortfolioCommandsReadPlatformService { - Collection retrieveAllEntriesToBeChecked(); - CommandSourceData retrieveById(Long id); Collection retrieveUnprocessChangesByEntityNameAndId(String entityName, Long entityId); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/commands/service/PortfolioCommandsReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/commands/service/PortfolioCommandsReadPlatformServiceImpl.java index 889356b53..7c8b7625c 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/commands/service/PortfolioCommandsReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/commands/service/PortfolioCommandsReadPlatformServiceImpl.java @@ -53,16 +53,6 @@ public class PortfolioCommandsReadPlatformServiceImpl implements PortfolioComman } } - @Override - public Collection retrieveAllEntriesToBeChecked() { - context.authenticatedUser(); - - final CommandSourceMapper rm = new CommandSourceMapper(); - final String sql = "select " + rm.schema() - + " where mc.checker_id is null and mc.processing_result_enum = 2 order by mc.made_on_date DESC, mc.entity_name ASC, mc.action_name ASC"; - - return this.jdbcTemplate.query(sql, rm, new Object[] {}); - } @Override public CommandSourceData retrieveById(final Long id) {