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