mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Move QueryExecutorUtils to ApiQueryFilterUtils
This commit is contained in:
@ -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();
|
||||||
|
@ -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 //
|
||||||
|
@ -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())
|
||||||
{
|
{
|
Reference in New Issue
Block a user