Search in sources :

Example 11 with AuditLog

use of org.killbill.billing.util.audit.AuditLog in project killbill by killbill.

the class DefaultAuditDao method getAuditLogsForAccountRecordId.

@Override
public DefaultAccountAuditLogs getAuditLogsForAccountRecordId(final AuditLevel auditLevel, final InternalTenantContext context) {
    final UUID accountId = nonEntitySqlDao.getIdFromObject(context.getAccountRecordId(), TableName.ACCOUNT.getTableName());
    // Lazy evaluate records to minimize the memory footprint (these can yield a lot of results)
    // We usually always want to wrap our queries in an EntitySqlDaoTransactionWrapper... except here.
    // Since we want to stream the results out, we don't want to auto-commit when this method returns.
    final EntitySqlDao auditSqlDao = transactionalSqlDao.onDemandForStreamingResults(EntitySqlDao.class);
    final Iterator<AuditLogModelDao> auditLogsForAccountRecordId = auditSqlDao.getAuditLogsForAccountRecordId(context);
    final Iterator<AuditLog> allAuditLogs = buildAuditLogsFromModelDao(auditLogsForAccountRecordId, context);
    return new DefaultAccountAuditLogs(accountId, auditLevel, allAuditLogs);
}
Also used : EntitySqlDao(org.killbill.billing.util.entity.dao.EntitySqlDao) NonEntitySqlDao(org.killbill.billing.util.dao.NonEntitySqlDao) DefaultAccountAuditLogs(org.killbill.billing.util.audit.DefaultAccountAuditLogs) UUID(java.util.UUID) DefaultAuditLog(org.killbill.billing.util.audit.DefaultAuditLog) AuditLog(org.killbill.billing.util.audit.AuditLog)

Example 12 with AuditLog

use of org.killbill.billing.util.audit.AuditLog in project killbill by killbill.

the class DefaultAuditDao method doGetAuditLogsViaHistoryForId.

private List<AuditLog> doGetAuditLogsViaHistoryForId(final TableName tableName, final UUID objectId, final AuditLevel auditLevel, final InternalTenantContext context) {
    final TableName historyTableName = tableName.getHistoryTableName();
    if (historyTableName == null) {
        throw new IllegalStateException("History table shouldn't be null for " + tableName);
    }
    final Long targetRecordId = nonEntitySqlDao.getRecordIdFromObject(objectId.toString(), tableName.getTableName());
    final List<AuditLog> allAuditLogs = transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<List<AuditLog>>() {

        @Override
        public List<AuditLog> inTransaction(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory) throws Exception {
            final List<AuditLogModelDao> auditLogsViaHistoryForTargetRecordId = entitySqlDaoWrapperFactory.become(EntitySqlDao.class).getAuditLogsViaHistoryForTargetRecordId(historyTableName.name(), historyTableName.getTableName().toLowerCase(), targetRecordId, context);
            return buildAuditLogsFromModelDao(auditLogsViaHistoryForTargetRecordId, tableName.getObjectType(), objectId);
        }
    });
    return filterAuditLogs(auditLevel, allAuditLogs);
}
Also used : TableName(org.killbill.billing.util.dao.TableName) EntitySqlDaoWrapperFactory(org.killbill.billing.util.entity.dao.EntitySqlDaoWrapperFactory) ImmutableList(com.google.common.collect.ImmutableList) List(java.util.List) DefaultAuditLog(org.killbill.billing.util.audit.DefaultAuditLog) AuditLog(org.killbill.billing.util.audit.AuditLog)

Example 13 with AuditLog

use of org.killbill.billing.util.audit.AuditLog in project killbill by killbill.

the class JaxRsResourceBase method createTagResponse.

protected Response createTagResponse(final UUID accountId, final List<Tag> tags, final AuditMode auditMode, final TenantContext context) throws TagDefinitionApiException {
    final AccountAuditLogsForObjectType tagsAuditLogs = auditUserApi.getAccountAuditLogs(accountId, ObjectType.TAG, auditMode.getLevel(), context);
    final Map<UUID, TagDefinition> tagDefinitionsCache = new HashMap<UUID, TagDefinition>();
    final Collection<TagJson> result = new LinkedList<TagJson>();
    for (final Tag tag : tags) {
        if (tagDefinitionsCache.get(tag.getTagDefinitionId()) == null) {
            tagDefinitionsCache.put(tag.getTagDefinitionId(), tagUserApi.getTagDefinition(tag.getTagDefinitionId(), context));
        }
        final TagDefinition tagDefinition = tagDefinitionsCache.get(tag.getTagDefinitionId());
        final List<AuditLog> auditLogs = tagsAuditLogs.getAuditLogs(tag.getId());
        result.add(new TagJson(tag, tagDefinition, auditLogs));
    }
    return Response.status(Response.Status.OK).entity(result).build();
}
Also used : TagDefinition(org.killbill.billing.util.tag.TagDefinition) TagJson(org.killbill.billing.jaxrs.json.TagJson) HashMap(java.util.HashMap) AccountAuditLogsForObjectType(org.killbill.billing.util.audit.AccountAuditLogsForObjectType) Tag(org.killbill.billing.util.tag.Tag) UUID(java.util.UUID) LinkedList(java.util.LinkedList) AuditLog(org.killbill.billing.util.audit.AuditLog)

Example 14 with AuditLog

use of org.killbill.billing.util.audit.AuditLog in project killbill by killbill.

the class TestDefaultAuditUserApi method beforeClass.

@Override
@BeforeClass(groups = "fast")
public void beforeClass() throws Exception {
    super.beforeClass();
    auditLogs = ImmutableList.<AuditLog>of(createAuditLog(), createAuditLog(), createAuditLog(), createAuditLog());
    objectIds = ImmutableList.<UUID>of(UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID());
    for (final TableName tableName : TableName.values()) {
        for (final UUID objectId : objectIds) {
            for (final AuditLog auditLog : auditLogs) {
                ((MockAuditDao) auditDao).addAuditLogForId(tableName, objectId, auditLog);
            }
        }
    }
}
Also used : TableName(org.killbill.billing.util.dao.TableName) MockAuditDao(org.killbill.billing.util.audit.dao.MockAuditDao) UUID(java.util.UUID) AuditLog(org.killbill.billing.util.audit.AuditLog) BeforeClass(org.testng.annotations.BeforeClass)

Example 15 with AuditLog

use of org.killbill.billing.util.audit.AuditLog in project killbill by killbill.

the class TestDefaultAuditDao method testRetrieveAuditsViaHistory.

@Test(groups = "slow")
public void testRetrieveAuditsViaHistory() throws Exception {
    addTag();
    for (final AuditLevel level : AuditLevel.values()) {
        final List<AuditLog> auditLogs = auditDao.getAuditLogsForId(TableName.TAG, tag.getId(), level, internalCallContext);
        verifyAuditLogsForTag(auditLogs, level);
        final AccountAuditLogs accountAuditLogs = auditDao.getAuditLogsForAccountRecordId(level, internalCallContext);
        verifyAuditLogsForTag(accountAuditLogs.getAuditLogs(ObjectType.TAG).getAuditLogs(tag.getId()), level);
        final AccountAuditLogsForObjectType accountAuditLogsForObjectType = auditDao.getAuditLogsForAccountRecordId(TableName.TAG, level, internalCallContext);
        verifyAuditLogsForTag(accountAuditLogsForObjectType.getAuditLogs(tag.getId()), level);
    }
}
Also used : AuditLevel(org.killbill.billing.util.api.AuditLevel) AccountAuditLogsForObjectType(org.killbill.billing.util.audit.AccountAuditLogsForObjectType) AccountAuditLogs(org.killbill.billing.util.audit.AccountAuditLogs) AuditLog(org.killbill.billing.util.audit.AuditLog) Test(org.testng.annotations.Test)

Aggregations

AuditLog (org.killbill.billing.util.audit.AuditLog)16 UUID (java.util.UUID)6 DefaultAuditLog (org.killbill.billing.util.audit.DefaultAuditLog)5 Test (org.testng.annotations.Test)5 TableName (org.killbill.billing.util.dao.TableName)4 LinkedList (java.util.LinkedList)3 TagDefinition (org.killbill.billing.util.tag.TagDefinition)3 ApiOperation (io.swagger.annotations.ApiOperation)2 ApiResponses (io.swagger.annotations.ApiResponses)2 HashMap (java.util.HashMap)2 GET (javax.ws.rs.GET)2 Produces (javax.ws.rs.Produces)2 AccountEmail (org.killbill.billing.account.api.AccountEmail)2 DefaultAccountEmail (org.killbill.billing.account.api.DefaultAccountEmail)2 TagDefinitionJson (org.killbill.billing.jaxrs.json.TagDefinitionJson)2 AuditLevel (org.killbill.billing.util.api.AuditLevel)2 AccountAuditLogsForObjectType (org.killbill.billing.util.audit.AccountAuditLogsForObjectType)2 DefaultAccountAuditLogsForObjectType (org.killbill.billing.util.audit.DefaultAccountAuditLogsForObjectType)2 TenantContext (org.killbill.billing.util.callcontext.TenantContext)2 NonEntitySqlDao (org.killbill.billing.util.dao.NonEntitySqlDao)2