mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Don't audit for records that failed their DML
This commit is contained in:
@ -79,7 +79,6 @@ public class DMLAuditAction extends AbstractQActionFunction<DMLAuditInput, DMLAu
|
|||||||
{
|
{
|
||||||
DMLAuditOutput output = new DMLAuditOutput();
|
DMLAuditOutput output = new DMLAuditOutput();
|
||||||
AbstractTableActionInput tableActionInput = input.getTableActionInput();
|
AbstractTableActionInput tableActionInput = input.getTableActionInput();
|
||||||
List<QRecord> recordList = input.getRecordList();
|
|
||||||
List<QRecord> oldRecordList = input.getOldRecordList();
|
List<QRecord> oldRecordList = input.getOldRecordList();
|
||||||
QTableMetaData table = tableActionInput.getTable();
|
QTableMetaData table = tableActionInput.getTable();
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
@ -87,6 +86,9 @@ public class DMLAuditAction extends AbstractQActionFunction<DMLAuditInput, DMLAu
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
List<QRecord> recordList = CollectionUtils.nonNullList(input.getRecordList()).stream()
|
||||||
|
.filter(r -> CollectionUtils.nullSafeIsEmpty(r.getErrors())).toList();
|
||||||
|
|
||||||
AuditLevel auditLevel = getAuditLevel(tableActionInput);
|
AuditLevel auditLevel = getAuditLevel(tableActionInput);
|
||||||
if(auditLevel == null || auditLevel.equals(AuditLevel.NONE) || CollectionUtils.nullSafeIsEmpty(recordList))
|
if(auditLevel == null || auditLevel.equals(AuditLevel.NONE) || CollectionUtils.nullSafeIsEmpty(recordList))
|
||||||
{
|
{
|
||||||
|
@ -36,6 +36,7 @@ import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
|||||||
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.audits.AuditLevel;
|
import com.kingsrook.qqq.backend.core.model.metadata.audits.AuditLevel;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.audits.QAuditRules;
|
import com.kingsrook.qqq.backend.core.model.metadata.audits.QAuditRules;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.statusmessages.BadInputStatusMessage;
|
||||||
import com.kingsrook.qqq.backend.core.modules.backend.implementations.memory.MemoryRecordStore;
|
import com.kingsrook.qqq.backend.core.modules.backend.implementations.memory.MemoryRecordStore;
|
||||||
import com.kingsrook.qqq.backend.core.utils.TestUtils;
|
import com.kingsrook.qqq.backend.core.utils.TestUtils;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@ -184,6 +185,19 @@ class DMLAuditActionTest extends BaseTest
|
|||||||
assertEquals(0, auditList.size());
|
assertEquals(0, auditList.size());
|
||||||
MemoryRecordStore.getInstance().reset();
|
MemoryRecordStore.getInstance().reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
// confirm we don't audit for records with errors //
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
{
|
||||||
|
qInstance.getTable(TestUtils.TABLE_NAME_PERSON_MEMORY).setAuditRules(new QAuditRules().withAuditLevel(AuditLevel.FIELD));
|
||||||
|
new DMLAuditAction().execute(new DMLAuditInput().withTableActionInput(updateInput)
|
||||||
|
.withRecordList(List.of(new QRecord().withValue("id", 1).withValue("firstName", "B").withError(new BadInputStatusMessage("Error"))))
|
||||||
|
.withOldRecordList(List.of(new QRecord().withValue("id", 1).withValue("firstName", "A"))));
|
||||||
|
List<QRecord> auditList = TestUtils.queryTable("audit");
|
||||||
|
assertEquals(0, auditList.size());
|
||||||
|
MemoryRecordStore.getInstance().reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user