Move QueryExecutorUtils to ApiQueryFilterUtils

This commit is contained in:
2025-05-30 20:35:36 -05:00
parent 3888aab490
commit 00afad43bc
3 changed files with 11 additions and 9 deletions

View File

@ -29,6 +29,7 @@ import java.util.Objects;
import com.kingsrook.qqq.api.actions.ApiImplementation; import com.kingsrook.qqq.api.actions.ApiImplementation;
import com.kingsrook.qqq.api.actions.GetTableApiFieldsAction; import com.kingsrook.qqq.api.actions.GetTableApiFieldsAction;
import com.kingsrook.qqq.api.model.metadata.ApiOperation; import com.kingsrook.qqq.api.model.metadata.ApiOperation;
import com.kingsrook.qqq.api.utils.ApiQueryFilterUtils;
import com.kingsrook.qqq.backend.core.actions.permissions.PermissionsHelper; import com.kingsrook.qqq.backend.core.actions.permissions.PermissionsHelper;
import com.kingsrook.qqq.backend.core.actions.permissions.TablePermissionSubType; import com.kingsrook.qqq.backend.core.actions.permissions.TablePermissionSubType;
import com.kingsrook.qqq.backend.core.actions.tables.CountAction; import com.kingsrook.qqq.backend.core.actions.tables.CountAction;
@ -81,12 +82,12 @@ public class ApiAwareTableCountExecutor extends TableCountExecutor implements Ap
// take care of managing criteria, which may not be in this version, etc // // take care of managing criteria, which may not be in this version, etc //
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
QQueryFilter filter = Objects.requireNonNullElseGet(input.getFilter(), () -> new QQueryFilter()); QQueryFilter filter = Objects.requireNonNullElseGet(input.getFilter(), () -> new QQueryFilter());
QueryExecutorUtils.manageCriteriaFields(filter, tableApiFields, badRequestMessages, apiName, countInput); ApiQueryFilterUtils.manageCriteriaFields(filter, tableApiFields, badRequestMessages, apiName, countInput);
////////////////////////////////////////// //////////////////////////////////////////
// no more badRequest checks below here // // no more badRequest checks below here //
////////////////////////////////////////// //////////////////////////////////////////
QueryExecutorUtils.throwIfBadRequestMessages(badRequestMessages); ApiQueryFilterUtils.throwIfBadRequestMessages(badRequestMessages);
// //
CountAction countAction = new CountAction(); CountAction countAction = new CountAction();

View File

@ -33,6 +33,7 @@ import com.kingsrook.qqq.api.model.actions.ApiFieldCustomValueMapper;
import com.kingsrook.qqq.api.model.metadata.ApiOperation; import com.kingsrook.qqq.api.model.metadata.ApiOperation;
import com.kingsrook.qqq.api.model.metadata.fields.ApiFieldMetaData; import com.kingsrook.qqq.api.model.metadata.fields.ApiFieldMetaData;
import com.kingsrook.qqq.api.model.metadata.fields.ApiFieldMetaDataContainer; import com.kingsrook.qqq.api.model.metadata.fields.ApiFieldMetaDataContainer;
import com.kingsrook.qqq.api.utils.ApiQueryFilterUtils;
import com.kingsrook.qqq.backend.core.actions.customizers.QCodeLoader; import com.kingsrook.qqq.backend.core.actions.customizers.QCodeLoader;
import com.kingsrook.qqq.backend.core.actions.permissions.PermissionsHelper; import com.kingsrook.qqq.backend.core.actions.permissions.PermissionsHelper;
import com.kingsrook.qqq.backend.core.actions.permissions.TablePermissionSubType; import com.kingsrook.qqq.backend.core.actions.permissions.TablePermissionSubType;
@ -105,12 +106,12 @@ public class ApiAwareTableQueryExecutor extends TableQueryExecutor implements Ap
// take care of managing order-by fields and criteria, which may not be in this version, etc // // take care of managing order-by fields and criteria, which may not be in this version, etc //
/////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////
manageOrderByFields(filter, tableApiFields, badRequestMessages, apiName, queryInput); manageOrderByFields(filter, tableApiFields, badRequestMessages, apiName, queryInput);
QueryExecutorUtils.manageCriteriaFields(filter, tableApiFields, badRequestMessages, apiName, queryInput); ApiQueryFilterUtils.manageCriteriaFields(filter, tableApiFields, badRequestMessages, apiName, queryInput);
////////////////////////////////////////// //////////////////////////////////////////
// no more badRequest checks below here // // no more badRequest checks below here //
////////////////////////////////////////// //////////////////////////////////////////
QueryExecutorUtils.throwIfBadRequestMessages(badRequestMessages); ApiQueryFilterUtils.throwIfBadRequestMessages(badRequestMessages);
/////////////////////// ///////////////////////
// execute the query // // execute the query //

View File

@ -19,7 +19,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package com.kingsrook.qqq.api.middleware.executors; package com.kingsrook.qqq.api.utils;
import java.util.List; import java.util.List;
@ -39,15 +39,15 @@ import com.kingsrook.qqq.backend.core.utils.StringUtils;
/******************************************************************************* /*******************************************************************************
** shared code for query & count executors ** Utilities for working with Query Filters in the API (e.g., versioned field fun)
*******************************************************************************/ *******************************************************************************/
public class QueryExecutorUtils public class ApiQueryFilterUtils
{ {
/*************************************************************************** /***************************************************************************
** **
***************************************************************************/ ***************************************************************************/
static void manageCriteriaFields(QQueryFilter filter, Map<String, QFieldMetaData> tableApiFields, List<String> badRequestMessages, String apiName, QueryOrCountInputInterface input) public static void manageCriteriaFields(QQueryFilter filter, Map<String, QFieldMetaData> tableApiFields, List<String> badRequestMessages, String apiName, QueryOrCountInputInterface input)
{ {
for(QFilterCriteria criteria : CollectionUtils.nonNullList(filter.getCriteria())) for(QFilterCriteria criteria : CollectionUtils.nonNullList(filter.getCriteria()))
{ {
@ -85,7 +85,7 @@ public class QueryExecutorUtils
/*************************************************************************** /***************************************************************************
* *
***************************************************************************/ ***************************************************************************/
static void throwIfBadRequestMessages(List<String> badRequestMessages) throws QBadRequestException public static void throwIfBadRequestMessages(List<String> badRequestMessages) throws QBadRequestException
{ {
if(!badRequestMessages.isEmpty()) if(!badRequestMessages.isEmpty())
{ {