mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Pass logs through; cleanup & comment
This commit is contained in:
@ -26,11 +26,11 @@ import java.io.Serializable;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.kingsrook.qqq.backend.core.actions.ActionHelper;
|
import com.kingsrook.qqq.backend.core.actions.ActionHelper;
|
||||||
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.processes.BackendStep;
|
import com.kingsrook.qqq.backend.core.actions.processes.BackendStep;
|
||||||
import com.kingsrook.qqq.backend.core.actions.scripts.TestScriptActionInterface;
|
import com.kingsrook.qqq.backend.core.actions.scripts.TestScriptActionInterface;
|
||||||
import com.kingsrook.qqq.backend.core.actions.scripts.logging.BuildScriptLogAndScriptLogLineExecutionLogger;
|
|
||||||
import com.kingsrook.qqq.backend.core.actions.tables.GetAction;
|
import com.kingsrook.qqq.backend.core.actions.tables.GetAction;
|
||||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||||
import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepInput;
|
import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepInput;
|
||||||
@ -47,6 +47,7 @@ import com.kingsrook.qqq.backend.core.model.scripts.Script;
|
|||||||
import com.kingsrook.qqq.backend.core.model.scripts.ScriptRevision;
|
import com.kingsrook.qqq.backend.core.model.scripts.ScriptRevision;
|
||||||
import com.kingsrook.qqq.backend.core.model.scripts.ScriptRevisionFile;
|
import com.kingsrook.qqq.backend.core.model.scripts.ScriptRevisionFile;
|
||||||
import com.kingsrook.qqq.backend.core.model.scripts.ScriptType;
|
import com.kingsrook.qqq.backend.core.model.scripts.ScriptType;
|
||||||
|
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
||||||
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;
|
||||||
|
|
||||||
@ -68,9 +69,9 @@ public class TestScriptProcessStep implements BackendStep
|
|||||||
{
|
{
|
||||||
ActionHelper.validateSession(input);
|
ActionHelper.validateSession(input);
|
||||||
|
|
||||||
////////////////
|
///////////////////////////////////////////////////////////////////////
|
||||||
// get inputs //
|
// build a script revision based on the input params & file contents //
|
||||||
////////////////
|
///////////////////////////////////////////////////////////////////////
|
||||||
Integer scriptId = input.getValueInteger("scriptId");
|
Integer scriptId = input.getValueInteger("scriptId");
|
||||||
|
|
||||||
ScriptRevision scriptRevision = new ScriptRevision();
|
ScriptRevision scriptRevision = new ScriptRevision();
|
||||||
@ -90,15 +91,17 @@ public class TestScriptProcessStep implements BackendStep
|
|||||||
scriptRevision.setFiles(files);
|
scriptRevision.setFiles(files);
|
||||||
scriptRevision.setApiName(input.getValueString("apiName"));
|
scriptRevision.setApiName(input.getValueString("apiName"));
|
||||||
scriptRevision.setApiVersion(input.getValueString("apiVersion"));
|
scriptRevision.setApiVersion(input.getValueString("apiVersion"));
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////
|
||||||
|
// set up a code reference using the script revision //
|
||||||
|
///////////////////////////////////////////////////////
|
||||||
AdHocScriptCodeReference adHocScriptCodeReference = new AdHocScriptCodeReference().withScriptRevisionRecord(scriptRevision.toQRecord());
|
AdHocScriptCodeReference adHocScriptCodeReference = new AdHocScriptCodeReference().withScriptRevisionRecord(scriptRevision.toQRecord());
|
||||||
adHocScriptCodeReference.setCodeType(QCodeType.JAVA_SCRIPT); // todo - load dynamically?
|
adHocScriptCodeReference.setCodeType(QCodeType.JAVA_SCRIPT); // todo - load dynamically?
|
||||||
adHocScriptCodeReference.setInlineCode(scriptRevision.getFiles().get(0).getContents()); // todo - ugh.
|
adHocScriptCodeReference.setInlineCode(scriptRevision.getFiles().get(0).getContents()); // todo - ugh.
|
||||||
|
|
||||||
BuildScriptLogAndScriptLogLineExecutionLogger executionLogger = new BuildScriptLogAndScriptLogLineExecutionLogger(null, null);
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// load the script and its type, to find the TestScriptActionInterface where the script will be tested //
|
||||||
//////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// load the script & its type & its test interface. //
|
|
||||||
//////////////////////////////////////////////////////
|
|
||||||
QRecord script = getScript(scriptId);
|
QRecord script = getScript(scriptId);
|
||||||
Integer scriptTypeId = script.getValueInteger("scriptTypeId");
|
Integer scriptTypeId = script.getValueInteger("scriptTypeId");
|
||||||
GetInput getInput = new GetInput();
|
GetInput getInput = new GetInput();
|
||||||
@ -109,6 +112,9 @@ public class TestScriptProcessStep implements BackendStep
|
|||||||
|
|
||||||
TestScriptActionInterface testScriptActionInterface = QCodeLoader.getAdHoc(TestScriptActionInterface.class, new QCodeReference(scriptType.getTestScriptInterfaceName(), QCodeType.JAVA));
|
TestScriptActionInterface testScriptActionInterface = QCodeLoader.getAdHoc(TestScriptActionInterface.class, new QCodeReference(scriptType.getTestScriptInterfaceName(), QCodeType.JAVA));
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// finish setting up input for the testScript action - including coyping over all input values //
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
TestScriptInput testScriptInput = new TestScriptInput();
|
TestScriptInput testScriptInput = new TestScriptInput();
|
||||||
testScriptInput.setApiName(input.getValueString("apiName"));
|
testScriptInput.setApiName(input.getValueString("apiName"));
|
||||||
testScriptInput.setApiVersion(input.getValueString("apiVersion"));
|
testScriptInput.setApiVersion(input.getValueString("apiVersion"));
|
||||||
@ -124,10 +130,16 @@ public class TestScriptProcessStep implements BackendStep
|
|||||||
inputValues.put(key, value);
|
inputValues.put(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
// run the test script action //
|
||||||
|
////////////////////////////////
|
||||||
TestScriptOutput testScriptOutput = new TestScriptOutput();
|
TestScriptOutput testScriptOutput = new TestScriptOutput();
|
||||||
testScriptActionInterface.execute(testScriptInput, testScriptOutput);
|
testScriptActionInterface.execute(testScriptInput, testScriptOutput);
|
||||||
|
|
||||||
output.addValue("scriptLogLines", new ArrayList<>(executionLogger.getScriptLogLines()));
|
//////////////////////////////////
|
||||||
|
// send script outputs back out //
|
||||||
|
//////////////////////////////////
|
||||||
|
output.addValue("scriptLogLines", CollectionUtils.useOrWrap(testScriptOutput.getScriptLogLines(), TypeToken.get(ArrayList.class)));
|
||||||
output.addValue("outputObject", testScriptOutput.getOutputObject());
|
output.addValue("outputObject", testScriptOutput.getOutputObject());
|
||||||
|
|
||||||
if(testScriptOutput.getException() != null)
|
if(testScriptOutput.getException() != null)
|
||||||
|
Reference in New Issue
Block a user