add audit joins, move names to constants; fixes

This commit is contained in:
2023-01-20 10:03:52 -06:00
parent 2daa42aeb1
commit 97b803a86a

View File

@ -30,6 +30,9 @@ import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData; import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType; import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
import com.kingsrook.qqq.backend.core.model.metadata.fields.ValueTooLongBehavior; import com.kingsrook.qqq.backend.core.model.metadata.fields.ValueTooLongBehavior;
import com.kingsrook.qqq.backend.core.model.metadata.joins.JoinOn;
import com.kingsrook.qqq.backend.core.model.metadata.joins.JoinType;
import com.kingsrook.qqq.backend.core.model.metadata.joins.QJoinMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.possiblevalues.QPossibleValueSource; import com.kingsrook.qqq.backend.core.model.metadata.possiblevalues.QPossibleValueSource;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData; import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.tables.UniqueKey; import com.kingsrook.qqq.backend.core.model.metadata.tables.UniqueKey;
@ -40,6 +43,11 @@ import com.kingsrook.qqq.backend.core.model.metadata.tables.UniqueKey;
*******************************************************************************/ *******************************************************************************/
public class AuditsMetaDataProvider public class AuditsMetaDataProvider
{ {
public static final String TABLE_NAME_AUDIT_TABLE = "auditTable";
public static final String TABLE_NAME_AUDIT_USER = "auditUser";
public static final String TABLE_NAME_AUDIT = "audit";
/******************************************************************************* /*******************************************************************************
** **
@ -48,6 +56,30 @@ public class AuditsMetaDataProvider
{ {
defineStandardAuditTables(instance, backendName, backendDetailEnricher); defineStandardAuditTables(instance, backendName, backendDetailEnricher);
defineStandardAuditPossibleValueSources(instance); defineStandardAuditPossibleValueSources(instance);
defineStandardAuditJoins(instance);
}
/*******************************************************************************
**
*******************************************************************************/
private void defineStandardAuditJoins(QInstance instance)
{
instance.addJoin(new QJoinMetaData()
.withLeftTable(TABLE_NAME_AUDIT)
.withRightTable(TABLE_NAME_AUDIT_TABLE)
.withInferredName()
.withType(JoinType.MANY_TO_ONE)
.withJoinOn(new JoinOn("auditTableId", "id")));
instance.addJoin(new QJoinMetaData()
.withLeftTable(TABLE_NAME_AUDIT)
.withRightTable(TABLE_NAME_AUDIT_USER)
.withInferredName()
.withType(JoinType.MANY_TO_ONE)
.withJoinOn(new JoinOn("auditUserId", "id")));
} }
@ -71,13 +103,13 @@ public class AuditsMetaDataProvider
public void defineStandardAuditPossibleValueSources(QInstance instance) public void defineStandardAuditPossibleValueSources(QInstance instance)
{ {
instance.addPossibleValueSource(new QPossibleValueSource() instance.addPossibleValueSource(new QPossibleValueSource()
.withName("auditTable") .withName(TABLE_NAME_AUDIT_TABLE)
.withTableName("auditTable") .withTableName(TABLE_NAME_AUDIT_TABLE)
); );
instance.addPossibleValueSource(new QPossibleValueSource() instance.addPossibleValueSource(new QPossibleValueSource()
.withName("auditUser") .withName(TABLE_NAME_AUDIT_USER)
.withTableName("auditUser") .withTableName(TABLE_NAME_AUDIT_USER)
); );
} }
@ -117,7 +149,7 @@ public class AuditsMetaDataProvider
private QTableMetaData defineAuditTableTable(String backendName) private QTableMetaData defineAuditTableTable(String backendName)
{ {
return new QTableMetaData() return new QTableMetaData()
.withName("auditTable") .withName(TABLE_NAME_AUDIT_TABLE)
.withBackendName(backendName) .withBackendName(backendName)
.withRecordLabelFormat("%s") .withRecordLabelFormat("%s")
.withRecordLabelFields("label") .withRecordLabelFields("label")
@ -138,7 +170,7 @@ public class AuditsMetaDataProvider
private QTableMetaData defineAuditUserTable(String backendName) private QTableMetaData defineAuditUserTable(String backendName)
{ {
return new QTableMetaData() return new QTableMetaData()
.withName("auditUser") .withName(TABLE_NAME_AUDIT_USER)
.withBackendName(backendName) .withBackendName(backendName)
.withRecordLabelFormat("%s") .withRecordLabelFormat("%s")
.withRecordLabelFields("name") .withRecordLabelFields("name")
@ -158,13 +190,14 @@ public class AuditsMetaDataProvider
private QTableMetaData defineAuditTable(String backendName) private QTableMetaData defineAuditTable(String backendName)
{ {
return new QTableMetaData() return new QTableMetaData()
.withName("audit") .withName(TABLE_NAME_AUDIT)
.withBackendName(backendName) .withBackendName(backendName)
.withRecordLabelFormat("%s") .withRecordLabelFormat("%s %s")
.withRecordLabelFields("auditTableId", "recordId")
.withPrimaryKeyField("id") .withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER)) .withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withField(new QFieldMetaData("auditTableId", QFieldType.INTEGER).withPossibleValueSourceName("auditTable")) .withField(new QFieldMetaData("auditTableId", QFieldType.INTEGER).withPossibleValueSourceName(TABLE_NAME_AUDIT_TABLE))
.withField(new QFieldMetaData("auditUserId", QFieldType.INTEGER).withPossibleValueSourceName("auditUser")) .withField(new QFieldMetaData("auditUserId", QFieldType.INTEGER).withPossibleValueSourceName(TABLE_NAME_AUDIT_USER))
.withField(new QFieldMetaData("recordId", QFieldType.INTEGER)) .withField(new QFieldMetaData("recordId", QFieldType.INTEGER))
.withField(new QFieldMetaData("message", QFieldType.STRING).withMaxLength(250).withBehavior(ValueTooLongBehavior.TRUNCATE_ELLIPSIS)) .withField(new QFieldMetaData("message", QFieldType.STRING).withMaxLength(250).withBehavior(ValueTooLongBehavior.TRUNCATE_ELLIPSIS))
.withField(new QFieldMetaData("timestamp", QFieldType.DATE_TIME)); .withField(new QFieldMetaData("timestamp", QFieldType.DATE_TIME));