From 0fb246db5e5f773592507b48355bd37e938cd0da Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Thu, 30 Jun 2022 12:24:00 -0500 Subject: [PATCH] QQQ-14 feedback from code review --- pom.xml | 2 +- .../picocli/QPicoCliImplementation.java | 22 ++++++++++++------- .../picocli/QPicoCliImplementationTest.java | 2 +- .../qqq/frontend/picocli/TestUtils.java | 3 ++- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index 124e4371..53d3c063 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,7 @@ com.kingsrook.qqq qqq-backend-core - 0.0.0-20220624.134906-11 + 0.0.0-20220630.172133-16 com.kingsrook.qqq diff --git a/src/main/java/com/kingsrook/qqq/frontend/picocli/QPicoCliImplementation.java b/src/main/java/com/kingsrook/qqq/frontend/picocli/QPicoCliImplementation.java index 9ac6d3f0..1302cb94 100644 --- a/src/main/java/com/kingsrook/qqq/frontend/picocli/QPicoCliImplementation.java +++ b/src/main/java/com/kingsrook/qqq/frontend/picocli/QPicoCliImplementation.java @@ -257,7 +257,7 @@ public class QPicoCliImplementation { case "processes": { - return runTableProcess(subCommandLine, null, subParseResult); + return runProcessCommand(subCommandLine, subParseResult); } default: { @@ -308,7 +308,7 @@ public class QPicoCliImplementation case "process": { CommandLine subCommandLine = commandLine.getSubcommands().get(subCommandName); - return runTableProcess(subCommandLine, tableName, subParseResult); + return runProcessCommand(subCommandLine, subParseResult); } default: { @@ -328,29 +328,35 @@ public class QPicoCliImplementation /******************************************************************************* - ** + ** Handle a command up to the point where 'process' was given *******************************************************************************/ - private int runTableProcess(CommandLine commandLine, String tableName, ParseResult subParseResult) + private int runProcessCommand(CommandLine commandLine, ParseResult subParseResult) { if(!subParseResult.hasSubcommand()) { + //////////////////////////////////////////////////////////////// + // process name must be a sub-command, so, error if not given // + //////////////////////////////////////////////////////////////// commandLine.usage(commandLine.getOut()); return commandLine.getCommandSpec().exitCodeOnUsageHelp(); } else { + /////////////////////////////////////////// + // move on to running the actual process // + /////////////////////////////////////////// String subCommandName = subParseResult.subcommand().commandSpec().name(); CommandLine subCommandLine = commandLine.getSubcommands().get(subCommandName); - return runTableProcessLevelCommand(subCommandLine, tableName, subParseResult.subcommand()); + return runActualProcess(subCommandLine, subParseResult.subcommand()); } } /******************************************************************************* - ** + ** actually run a process (the process name should be at the start of the sub-command line) *******************************************************************************/ - private int runTableProcessLevelCommand(CommandLine subCommandLine, String tableName, ParseResult processParseResult) + private int runActualProcess(CommandLine subCommandLine, ParseResult processParseResult) { String processName = processParseResult.commandSpec().name(); QProcessMetaData process = qInstance.getProcess(processName); @@ -386,7 +392,7 @@ public class QPicoCliImplementation catch(Exception e) { e.printStackTrace(); - subCommandLine.getOut().println("Caught Exception running process: " + e); // todo better! + subCommandLine.getOut().println("Caught Exception running process. See stack trace above for details."); return 1; } diff --git a/src/test/java/com/kingsrook/qqq/frontend/picocli/QPicoCliImplementationTest.java b/src/test/java/com/kingsrook/qqq/frontend/picocli/QPicoCliImplementationTest.java index d2c78668..4f298522 100644 --- a/src/test/java/com/kingsrook/qqq/frontend/picocli/QPicoCliImplementationTest.java +++ b/src/test/java/com/kingsrook/qqq/frontend/picocli/QPicoCliImplementationTest.java @@ -146,7 +146,7 @@ class QPicoCliImplementationTest JSONObject processes = metaData.getJSONObject("processes"); JSONObject greetProcess = processes.getJSONObject("greet"); assertEquals("greet", greetProcess.getString("name")); - // todo - need label assertEquals("Person", greetProcess.getString("label")); + assertEquals("Greet", greetProcess.getString("label")); assertEquals("person", greetProcess.getString("tableName")); } diff --git a/src/test/java/com/kingsrook/qqq/frontend/picocli/TestUtils.java b/src/test/java/com/kingsrook/qqq/frontend/picocli/TestUtils.java index f09e3245..7940bbcc 100644 --- a/src/test/java/com/kingsrook/qqq/frontend/picocli/TestUtils.java +++ b/src/test/java/com/kingsrook/qqq/frontend/picocli/TestUtils.java @@ -25,6 +25,7 @@ package com.kingsrook.qqq.frontend.picocli; import java.io.InputStream; import java.sql.Connection; import java.util.List; +import com.kingsrook.qqq.backend.core.interfaces.mock.MockFunctionBody; import com.kingsrook.qqq.backend.core.model.metadata.QAuthenticationMetaData; import com.kingsrook.qqq.backend.core.model.metadata.QCodeReference; import com.kingsrook.qqq.backend.core.model.metadata.QCodeType; @@ -168,7 +169,7 @@ public class TestUtils .addFunction(new QFunctionMetaData() .withName("prepare") .withCode(new QCodeReference() - .withName("com.kingsrook.qqq.backend.core.interfaces.mock.MockFunctionBody") + .withName(MockFunctionBody.class.getName()) .withCodeType(QCodeType.JAVA) .withCodeUsage(QCodeUsage.FUNCTION)) // todo - needed, or implied in this context? .withInputData(new QFunctionInputMetaData()