From df530b70b85021e78c326badde29e2af91ec9bca Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Fri, 21 Feb 2025 15:04:02 -0600 Subject: [PATCH] Add static wrapper --- .../core/actions/tables/CountAction.java | 17 +++++++++++++++++ .../core/actions/tables/CountActionTest.java | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/CountAction.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/CountAction.java index 5a25c396..497d6f34 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/CountAction.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/CountAction.java @@ -32,6 +32,7 @@ import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountInput; import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountOutput; +import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter; import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData; import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData; import com.kingsrook.qqq.backend.core.model.querystats.QueryStat; @@ -82,6 +83,22 @@ public class CountAction + /******************************************************************************* + ** shorthand way to call for the most common use-case, when you just want the + ** count to be returned, and you just want to pass in a table name and filter. + *******************************************************************************/ + public static Integer execute(String tableName, QQueryFilter filter) throws QException + { + CountAction countAction = new CountAction(); + CountInput countInput = new CountInput(); + countInput.setTableName(tableName); + countInput.setFilter(filter); + CountOutput countOutput = countAction.execute(countInput); + return (countOutput.getCount()); + } + + + /******************************************************************************* ** *******************************************************************************/ diff --git a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/tables/CountActionTest.java b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/tables/CountActionTest.java index ba1c7c9b..5a93f970 100644 --- a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/tables/CountActionTest.java +++ b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/tables/CountActionTest.java @@ -23,10 +23,14 @@ package com.kingsrook.qqq.backend.core.actions.tables; import com.kingsrook.qqq.backend.core.BaseTest; +import com.kingsrook.qqq.backend.core.context.QContext; import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountInput; import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountOutput; +import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter; +import com.kingsrook.qqq.backend.core.utils.TestUtils; import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -50,4 +54,18 @@ class CountActionTest extends BaseTest CountOutput result = new CountAction().execute(request); assertNotNull(result); } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void testStaticWrapper() throws QException + { + TestUtils.insertDefaultShapes(QContext.getQInstance()); + assertEquals(3, CountAction.execute(TestUtils.TABLE_NAME_SHAPE, null)); + assertEquals(3, CountAction.execute(TestUtils.TABLE_NAME_SHAPE, new QQueryFilter())); + } + }