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 77eebd933..5c169d91a 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 @@ -63,20 +63,24 @@ public class AuditApiResource { @GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) - public String retrieveAuditEntries(@Context final UriInfo uriInfo, + public String retrieveAuditEntries( + @Context final UriInfo uriInfo, @QueryParam("apiOperation") final String apiOperation, @QueryParam("resource") final String resource, @QueryParam("resourceId") final Long resourceId, @QueryParam("makerId") final Long makerId, - @QueryParam("makerDateTime") final String makerDateTime, + @QueryParam("makerDateTimeFrom") final String makerDateTimeFrom, + @QueryParam("makerDateTimeTo") final String makerDateTimeTo, @QueryParam("checkerId") final Long checkerId, - @QueryParam("checkerDateTime") final String checkerDateTime) { + @QueryParam("checkerDateTimeFrom") final String checkerDateTimeFrom, + @QueryParam("checkerDateTimeTo") final String checkerDateTimeTo) { context.authenticatedUser().validateHasReadPermission( resourceNameForPermissions); final String extraCriteria = getExtraCriteria(apiOperation, resource, - resourceId, makerId, makerDateTime, checkerId, checkerDateTime); + resourceId, makerId, makerDateTimeFrom, makerDateTimeTo, + checkerId, checkerDateTimeFrom, checkerDateTimeTo); final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper .process(uriInfo.getQueryParameters()); @@ -130,8 +134,10 @@ public class AuditApiResource { } private String getExtraCriteria(final String apiOperation, - final String resource, final Long resourceId, final Long makerId, final String makerDateTime, - final Long checkerId, final String checkerDateTime) { + final String resource, final Long resourceId, final Long makerId, + final String makerDateTimeFrom, final String makerDateTimeTo, + final Long checkerId, final String checkerDateTimeFrom, + final String checkerDateTimeTo) { String extraCriteria = ""; @@ -153,11 +159,21 @@ public class AuditApiResource { if (checkerId != null) { extraCriteria += " and aud.checker_id = " + checkerId; } - if (makerDateTime != null) { - extraCriteria += " and aud.made_on_date >= " + ApiParameterHelper.sqlEncodeString(makerDateTime); + if (makerDateTimeFrom != null) { + extraCriteria += " and aud.made_on_date >= " + + ApiParameterHelper.sqlEncodeString(makerDateTimeFrom); } - if (checkerDateTime != null) { - extraCriteria += " and aud.checked_on_date >= " + ApiParameterHelper.sqlEncodeString(checkerDateTime); + if (makerDateTimeTo != null) { + extraCriteria += " and aud.made_on_date <= " + + ApiParameterHelper.sqlEncodeString(makerDateTimeTo); + } + if (checkerDateTimeFrom != null) { + extraCriteria += " and aud.checked_on_date >= " + + ApiParameterHelper.sqlEncodeString(checkerDateTimeFrom); + } + if (checkerDateTimeTo != null) { + extraCriteria += " and aud.checked_on_date <= " + + ApiParameterHelper.sqlEncodeString(checkerDateTimeTo); } if (StringUtils.isNotBlank(extraCriteria)) { 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 f8c239bc7..d50bb7483 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 @@ -11,9 +11,12 @@ import org.mifosplatform.audit.data.AuditData; import org.mifosplatform.audit.data.AuditSearchData; import org.mifosplatform.infrastructure.core.domain.JdbcSupport; import org.mifosplatform.infrastructure.core.service.TenantAwareRoutingDataSource; +import org.mifosplatform.infrastructure.dataqueries.service.ReadWriteNonCoreDataServiceImpl; import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext; import org.mifosplatform.useradministration.data.AppUserLookup; import org.mifosplatform.useradministration.service.AppUserReadPlatformService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; @@ -22,6 +25,7 @@ import org.springframework.stereotype.Service; @Service public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { + private final static Logger logger = LoggerFactory.getLogger(AuditReadPlatformServiceImpl.class); private final JdbcTemplate jdbcTemplate; private final PlatformSecurityContext context; private final AppUserReadPlatformService appUserReadPlatformService; @@ -78,7 +82,7 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { String sql = "select " + rm.schema(includeJson); if (StringUtils.isNotBlank(extraCriteria)) sql += " where (" + extraCriteria + ")"; sql += " order by aud.id DESC"; - + logger.info("sql: " + sql); return this.jdbcTemplate.query(sql, rm, new Object[] {}); }