Move handleQueryNullLimit to utils class

This commit is contained in:
2025-05-27 11:30:38 -05:00
parent 78eb315558
commit a4b1a8858d
2 changed files with 32 additions and 24 deletions

View File

@ -1366,7 +1366,7 @@ public class QJavalinImplementation
if(queryInput.getFilter() == null || queryInput.getFilter().getLimit() == null) if(queryInput.getFilter() == null || queryInput.getFilter().getLimit() == null)
{ {
handleQueryNullLimit(context, queryInput); QJavalinUtils.handleQueryNullLimit(javalinMetaData, queryInput, context);
} }
List<QueryJoin> queryJoins = processQueryJoinsParam(context); List<QueryJoin> queryJoins = processQueryJoinsParam(context);
@ -1389,28 +1389,6 @@ public class QJavalinImplementation
/***************************************************************************
**
***************************************************************************/
private static void handleQueryNullLimit(Context context, QueryInput queryInput)
{
boolean allowed = javalinMetaData.getQueryWithoutLimitAllowed();
if(!allowed)
{
if(queryInput.getFilter() == null)
{
queryInput.setFilter(new QQueryFilter());
}
queryInput.getFilter().setLimit(javalinMetaData.getQueryWithoutLimitDefault());
LOG.log(javalinMetaData.getQueryWithoutLimitLogLevel(), "Query request did not specify a limit, which is not allowed. Using default instead", null,
logPair("defaultLimit", javalinMetaData.getQueryWithoutLimitDefault()),
logPair("path", context.path()));
}
}
/******************************************************************************* /*******************************************************************************
** **
*******************************************************************************/ *******************************************************************************/

View File

@ -31,12 +31,15 @@ import com.kingsrook.qqq.backend.core.exceptions.QPermissionDeniedException;
import com.kingsrook.qqq.backend.core.exceptions.QUserFacingException; import com.kingsrook.qqq.backend.core.exceptions.QUserFacingException;
import com.kingsrook.qqq.backend.core.exceptions.QValueException; import com.kingsrook.qqq.backend.core.exceptions.QValueException;
import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.logging.QLogger;
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryInput;
import com.kingsrook.qqq.backend.core.utils.ExceptionUtils; import com.kingsrook.qqq.backend.core.utils.ExceptionUtils;
import com.kingsrook.qqq.backend.core.utils.JsonUtils; import com.kingsrook.qqq.backend.core.utils.JsonUtils;
import com.kingsrook.qqq.backend.core.utils.StringUtils; import com.kingsrook.qqq.backend.core.utils.StringUtils;
import com.kingsrook.qqq.backend.core.utils.ValueUtils; import com.kingsrook.qqq.backend.core.utils.ValueUtils;
import io.javalin.http.Context; import io.javalin.http.Context;
import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.HttpStatus;
import static com.kingsrook.qqq.backend.core.logging.LogUtils.logPair;
/******************************************************************************* /*******************************************************************************
@ -48,7 +51,6 @@ public class QJavalinUtils
/******************************************************************************* /*******************************************************************************
** Returns Integer if context has a valid int query parameter by the given name, ** Returns Integer if context has a valid int query parameter by the given name,
** Returns null if no param (or empty value). ** Returns null if no param (or empty value).
@ -252,4 +254,32 @@ public class QJavalinUtils
context.status(statusCode.getCode()); context.status(statusCode.getCode());
context.result(JsonUtils.toJson(Map.of("error", errorMessage))); context.result(JsonUtils.toJson(Map.of("error", errorMessage)));
} }
/***************************************************************************
**
***************************************************************************/
public static void handleQueryNullLimit(QJavalinMetaData javalinMetaData, QueryInput queryInput, Context context)
{
if(javalinMetaData == null)
{
javalinMetaData = new QJavalinMetaData();
}
boolean allowed = javalinMetaData.getQueryWithoutLimitAllowed();
if(!allowed)
{
if(queryInput.getFilter() == null)
{
queryInput.setFilter(new QQueryFilter());
}
queryInput.getFilter().setLimit(javalinMetaData.getQueryWithoutLimitDefault());
LOG.log(javalinMetaData.getQueryWithoutLimitLogLevel(), "Query request did not specify a limit, which is not allowed. Using default instead", null,
logPair("defaultLimit", javalinMetaData.getQueryWithoutLimitDefault()),
logPair("path", context == null ? null : context.path()));
}
}
} }