wip audit api

This commit is contained in:
John Woodlock
2012-12-14 17:38:07 +00:00
parent 7a7654e75f
commit adca69b0a0
2 changed files with 31 additions and 11 deletions
@@ -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)) {
@@ -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[] {});
}