try to be a little more graceful with fields that don't exist (e.g., other api version use cases)

This commit is contained in:
2025-05-29 12:24:21 -05:00
parent 5ab906bcfe
commit 0a42b9d4f0
2 changed files with 15 additions and 4 deletions

View File

@ -117,6 +117,11 @@ export default class QQueryColumns
{ {
const [field, tableForField] = TableUtils.getFieldAndTable(table, fieldName) const [field, tableForField] = TableUtils.getFieldAndTable(table, fieldName)
if(!field)
{
console.warn(`Couldn't find field ${fieldName} in tableMetaData - so not adding a column for it`);
}
let column: Column; let column: Column;
if(tableForField.name == table.name) if(tableForField.name == table.name)
{ {

View File

@ -108,6 +108,12 @@ class FilterUtils
const criteria = queryFilter.criteria[i]; const criteria = queryFilter.criteria[i];
let [field, fieldTable] = TableUtils.getFieldAndTable(tableMetaData, criteria.fieldName); let [field, fieldTable] = TableUtils.getFieldAndTable(tableMetaData, criteria.fieldName);
if(!field)
{
console.warn(`Field ${criteria.fieldName} not found in tableMetaData - unable to clean up values for it..`);
return;
}
let values = criteria.values; let values = criteria.values;
let hasFilterVariable = false; let hasFilterVariable = false;
@ -401,21 +407,21 @@ class FilterUtils
{ {
const expression = new ThisOrLastPeriodExpression(value); const expression = new ThisOrLastPeriodExpression(value);
let startOfPrefix = ""; let startOfPrefix = "";
if (fieldMetaData.type == QFieldType.DATE_TIME || expression.timeUnit != "DAYS") if (fieldMetaData?.type == QFieldType.DATE_TIME || expression.timeUnit != "DAYS")
{ {
startOfPrefix = "start of "; startOfPrefix = "start of ";
} }
labels.push(`${startOfPrefix}${expression.toString()}`); labels.push(`${startOfPrefix}${expression.toString()}`);
} }
else if (fieldMetaData.type == QFieldType.BOOLEAN) else if (fieldMetaData?.type == QFieldType.BOOLEAN)
{ {
labels.push(value == true ? "yes" : "no"); labels.push(value == true ? "yes" : "no");
} }
else if (fieldMetaData.type == QFieldType.DATE_TIME) else if (fieldMetaData?.type == QFieldType.DATE_TIME)
{ {
labels.push(ValueUtils.formatDateTime(value)); labels.push(ValueUtils.formatDateTime(value));
} }
else if (fieldMetaData.type == QFieldType.DATE) else if (fieldMetaData?.type == QFieldType.DATE)
{ {
labels.push(ValueUtils.formatDate(value)); labels.push(ValueUtils.formatDate(value));
} }