Reorganize packages; rename Request to Input and Response to Output

This commit is contained in:
2022-07-14 13:05:55 -05:00
parent 9212c3373f
commit be1482ce8f
5 changed files with 140 additions and 140 deletions

View File

@ -53,12 +53,12 @@
<dependency> <dependency>
<groupId>com.kingsrook.qqq</groupId> <groupId>com.kingsrook.qqq</groupId>
<artifactId>qqq-backend-core</artifactId> <artifactId>qqq-backend-core</artifactId>
<version>0.1.0</version> <version>0.2.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.kingsrook.qqq</groupId> <groupId>com.kingsrook.qqq</groupId>
<artifactId>qqq-backend-module-rdbms</artifactId> <artifactId>qqq-backend-module-rdbms</artifactId>
<version>0.1.0</version> <version>0.2.0-SNAPSHOT</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>

View File

@ -29,45 +29,45 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.kingsrook.qqq.backend.core.actions.CountAction; import com.kingsrook.qqq.backend.core.actions.metadata.MetaDataAction;
import com.kingsrook.qqq.backend.core.actions.DeleteAction; import com.kingsrook.qqq.backend.core.actions.metadata.ProcessMetaDataAction;
import com.kingsrook.qqq.backend.core.actions.InsertAction; import com.kingsrook.qqq.backend.core.actions.metadata.TableMetaDataAction;
import com.kingsrook.qqq.backend.core.actions.MetaDataAction; import com.kingsrook.qqq.backend.core.actions.tables.CountAction;
import com.kingsrook.qqq.backend.core.actions.ProcessMetaDataAction; import com.kingsrook.qqq.backend.core.actions.tables.DeleteAction;
import com.kingsrook.qqq.backend.core.actions.QueryAction; import com.kingsrook.qqq.backend.core.actions.tables.InsertAction;
import com.kingsrook.qqq.backend.core.actions.TableMetaDataAction; import com.kingsrook.qqq.backend.core.actions.tables.QueryAction;
import com.kingsrook.qqq.backend.core.actions.UpdateAction; import com.kingsrook.qqq.backend.core.actions.tables.UpdateAction;
import com.kingsrook.qqq.backend.core.adapters.QInstanceAdapter; import com.kingsrook.qqq.backend.core.adapters.QInstanceAdapter;
import com.kingsrook.qqq.backend.core.exceptions.QModuleDispatchException; import com.kingsrook.qqq.backend.core.exceptions.QModuleDispatchException;
import com.kingsrook.qqq.backend.core.exceptions.QNotFoundException; import com.kingsrook.qqq.backend.core.exceptions.QNotFoundException;
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.model.actions.AbstractQRequest; import com.kingsrook.qqq.backend.core.model.actions.AbstractActionInput;
import com.kingsrook.qqq.backend.core.model.actions.count.CountRequest; import com.kingsrook.qqq.backend.core.model.actions.metadata.MetaDataInput;
import com.kingsrook.qqq.backend.core.model.actions.count.CountResult; import com.kingsrook.qqq.backend.core.model.actions.metadata.MetaDataOutput;
import com.kingsrook.qqq.backend.core.model.actions.delete.DeleteRequest; import com.kingsrook.qqq.backend.core.model.actions.metadata.ProcessMetaDataInput;
import com.kingsrook.qqq.backend.core.model.actions.delete.DeleteResult; import com.kingsrook.qqq.backend.core.model.actions.metadata.ProcessMetaDataOutput;
import com.kingsrook.qqq.backend.core.model.actions.insert.InsertRequest; import com.kingsrook.qqq.backend.core.model.actions.metadata.TableMetaDataInput;
import com.kingsrook.qqq.backend.core.model.actions.insert.InsertResult; import com.kingsrook.qqq.backend.core.model.actions.metadata.TableMetaDataOutput;
import com.kingsrook.qqq.backend.core.model.actions.metadata.MetaDataRequest; import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountInput;
import com.kingsrook.qqq.backend.core.model.actions.metadata.MetaDataResult; import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountOutput;
import com.kingsrook.qqq.backend.core.model.actions.metadata.process.ProcessMetaDataRequest; import com.kingsrook.qqq.backend.core.model.actions.tables.delete.DeleteInput;
import com.kingsrook.qqq.backend.core.model.actions.metadata.process.ProcessMetaDataResult; import com.kingsrook.qqq.backend.core.model.actions.tables.delete.DeleteOutput;
import com.kingsrook.qqq.backend.core.model.actions.metadata.table.TableMetaDataRequest; import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertInput;
import com.kingsrook.qqq.backend.core.model.actions.metadata.table.TableMetaDataResult; import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertOutput;
import com.kingsrook.qqq.backend.core.model.actions.query.QCriteriaOperator; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QCriteriaOperator;
import com.kingsrook.qqq.backend.core.model.actions.query.QFilterCriteria; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterCriteria;
import com.kingsrook.qqq.backend.core.model.actions.query.QQueryFilter; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
import com.kingsrook.qqq.backend.core.model.actions.query.QueryRequest; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryInput;
import com.kingsrook.qqq.backend.core.model.actions.query.QueryResult; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryOutput;
import com.kingsrook.qqq.backend.core.model.actions.update.UpdateRequest; import com.kingsrook.qqq.backend.core.model.actions.tables.update.UpdateInput;
import com.kingsrook.qqq.backend.core.model.actions.update.UpdateResult; import com.kingsrook.qqq.backend.core.model.actions.tables.update.UpdateOutput;
import com.kingsrook.qqq.backend.core.model.data.QRecord; import com.kingsrook.qqq.backend.core.model.data.QRecord;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData; import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
import com.kingsrook.qqq.backend.core.model.session.QSession; import com.kingsrook.qqq.backend.core.model.session.QSession;
import com.kingsrook.qqq.backend.core.modules.QAuthenticationModuleDispatcher; import com.kingsrook.qqq.backend.core.modules.authentication.QAuthenticationModuleDispatcher;
import com.kingsrook.qqq.backend.core.modules.interfaces.QAuthenticationModuleInterface; import com.kingsrook.qqq.backend.core.modules.authentication.QAuthenticationModuleInterface;
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;
@ -221,7 +221,7 @@ public class QJavalinImplementation
/******************************************************************************* /*******************************************************************************
** **
*******************************************************************************/ *******************************************************************************/
static void setupSession(Context context, AbstractQRequest request) throws QModuleDispatchException static void setupSession(Context context, AbstractActionInput request) throws QModuleDispatchException
{ {
QAuthenticationModuleDispatcher qAuthenticationModuleDispatcher = new QAuthenticationModuleDispatcher(); QAuthenticationModuleDispatcher qAuthenticationModuleDispatcher = new QAuthenticationModuleDispatcher();
QAuthenticationModuleInterface authenticationModule = qAuthenticationModuleDispatcher.getQModule(request.getAuthenticationMetaData()); QAuthenticationModuleInterface authenticationModule = qAuthenticationModuleDispatcher.getQModule(request.getAuthenticationMetaData());
@ -248,13 +248,13 @@ public class QJavalinImplementation
List<Serializable> primaryKeys = new ArrayList<>(); List<Serializable> primaryKeys = new ArrayList<>();
primaryKeys.add(context.pathParam("primaryKey")); primaryKeys.add(context.pathParam("primaryKey"));
DeleteRequest deleteRequest = new DeleteRequest(qInstance); DeleteInput deleteInput = new DeleteInput(qInstance);
setupSession(context, deleteRequest); setupSession(context, deleteInput);
deleteRequest.setTableName(table); deleteInput.setTableName(table);
deleteRequest.setPrimaryKeys(primaryKeys); deleteInput.setPrimaryKeys(primaryKeys);
DeleteAction deleteAction = new DeleteAction(); DeleteAction deleteAction = new DeleteAction();
DeleteResult deleteResult = deleteAction.execute(deleteRequest); DeleteOutput deleteResult = deleteAction.execute(deleteInput);
context.result(JsonUtils.toJson(deleteResult)); context.result(JsonUtils.toJson(deleteResult));
} }
@ -292,13 +292,13 @@ public class QJavalinImplementation
record.setValue(tableMetaData.getPrimaryKeyField(), context.pathParam("primaryKey")); record.setValue(tableMetaData.getPrimaryKeyField(), context.pathParam("primaryKey"));
UpdateRequest updateRequest = new UpdateRequest(qInstance); UpdateInput updateInput = new UpdateInput(qInstance);
setupSession(context, updateRequest); setupSession(context, updateInput);
updateRequest.setTableName(table); updateInput.setTableName(table);
updateRequest.setRecords(recordList); updateInput.setRecords(recordList);
UpdateAction updateAction = new UpdateAction(); UpdateAction updateAction = new UpdateAction();
UpdateResult updateResult = updateAction.execute(updateRequest); UpdateOutput updateResult = updateAction.execute(updateInput);
context.result(JsonUtils.toJson(updateResult)); context.result(JsonUtils.toJson(updateResult));
} }
@ -332,15 +332,15 @@ public class QJavalinImplementation
} }
} }
InsertRequest insertRequest = new InsertRequest(qInstance); InsertInput insertInput = new InsertInput(qInstance);
setupSession(context, insertRequest); setupSession(context, insertInput);
insertRequest.setTableName(table); insertInput.setTableName(table);
insertRequest.setRecords(recordList); insertInput.setRecords(recordList);
InsertAction insertAction = new InsertAction(); InsertAction insertAction = new InsertAction();
InsertResult insertResult = insertAction.execute(insertRequest); InsertOutput insertOutput = insertAction.execute(insertInput);
context.result(JsonUtils.toJson(insertResult)); context.result(JsonUtils.toJson(insertOutput));
} }
catch(Exception e) catch(Exception e)
{ {
@ -360,10 +360,10 @@ public class QJavalinImplementation
String tableName = context.pathParam("table"); String tableName = context.pathParam("table");
QTableMetaData table = qInstance.getTable(tableName); QTableMetaData table = qInstance.getTable(tableName);
String primaryKey = context.pathParam("primaryKey"); String primaryKey = context.pathParam("primaryKey");
QueryRequest queryRequest = new QueryRequest(qInstance); QueryInput queryInput = new QueryInput(qInstance);
setupSession(context, queryRequest); setupSession(context, queryInput);
queryRequest.setTableName(tableName); queryInput.setTableName(tableName);
// todo - validate that the primary key is of the proper type (e.g,. not a string for an id field) // todo - validate that the primary key is of the proper type (e.g,. not a string for an id field)
// and throw a 400-series error (tell the user bad-request), rather than, we're doing a 500 (server error) // and throw a 400-series error (tell the user bad-request), rather than, we're doing a 500 (server error)
@ -371,25 +371,25 @@ public class QJavalinImplementation
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
// setup a filter for the primaryKey = the path-pram // // setup a filter for the primaryKey = the path-pram //
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
queryRequest.setFilter(new QQueryFilter() queryInput.setFilter(new QQueryFilter()
.withCriteria(new QFilterCriteria() .withCriteria(new QFilterCriteria()
.withFieldName(table.getPrimaryKeyField()) .withFieldName(table.getPrimaryKeyField())
.withOperator(QCriteriaOperator.EQUALS) .withOperator(QCriteriaOperator.EQUALS)
.withValues(List.of(primaryKey)))); .withValues(List.of(primaryKey))));
QueryAction queryAction = new QueryAction(); QueryAction queryAction = new QueryAction();
QueryResult queryResult = queryAction.execute(queryRequest); QueryOutput queryOutput = queryAction.execute(queryInput);
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
// throw a not found error if the record isn't found // // throw a not found error if the record isn't found //
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
if(queryResult.getRecords().isEmpty()) if(queryOutput.getRecords().isEmpty())
{ {
throw (new QNotFoundException("Could not find " + table.getLabel() + " with " throw (new QNotFoundException("Could not find " + table.getLabel() + " with "
+ table.getFields().get(table.getPrimaryKeyField()).getLabel() + " of " + primaryKey)); + table.getFields().get(table.getPrimaryKeyField()).getLabel() + " of " + primaryKey));
} }
context.result(JsonUtils.toJson(queryResult.getRecords().get(0))); context.result(JsonUtils.toJson(queryOutput.getRecords().get(0)));
} }
catch(Exception e) catch(Exception e)
{ {
@ -415,20 +415,20 @@ public class QJavalinImplementation
{ {
try try
{ {
CountRequest countRequest = new CountRequest(qInstance); CountInput countInput = new CountInput(qInstance);
setupSession(context, countRequest); setupSession(context, countInput);
countRequest.setTableName(context.pathParam("table")); countInput.setTableName(context.pathParam("table"));
String filter = stringQueryParam(context, "filter"); String filter = stringQueryParam(context, "filter");
if(filter != null) if(filter != null)
{ {
countRequest.setFilter(JsonUtils.toObject(filter, QQueryFilter.class)); countInput.setFilter(JsonUtils.toObject(filter, QQueryFilter.class));
} }
CountAction countAction = new CountAction(); CountAction countAction = new CountAction();
CountResult countResult = countAction.execute(countRequest); CountOutput countOutput = countAction.execute(countInput);
context.result(JsonUtils.toJson(countResult)); context.result(JsonUtils.toJson(countOutput));
} }
catch(Exception e) catch(Exception e)
{ {
@ -456,22 +456,22 @@ public class QJavalinImplementation
{ {
try try
{ {
QueryRequest queryRequest = new QueryRequest(qInstance); QueryInput queryInput = new QueryInput(qInstance);
setupSession(context, queryRequest); setupSession(context, queryInput);
queryRequest.setTableName(context.pathParam("table")); queryInput.setTableName(context.pathParam("table"));
queryRequest.setSkip(integerQueryParam(context, "skip")); queryInput.setSkip(integerQueryParam(context, "skip"));
queryRequest.setLimit(integerQueryParam(context, "limit")); queryInput.setLimit(integerQueryParam(context, "limit"));
String filter = stringQueryParam(context, "filter"); String filter = stringQueryParam(context, "filter");
if(filter != null) if(filter != null)
{ {
queryRequest.setFilter(JsonUtils.toObject(filter, QQueryFilter.class)); queryInput.setFilter(JsonUtils.toObject(filter, QQueryFilter.class));
} }
QueryAction queryAction = new QueryAction(); QueryAction queryAction = new QueryAction();
QueryResult queryResult = queryAction.execute(queryRequest); QueryOutput queryOutput = queryAction.execute(queryInput);
context.result(JsonUtils.toJson(queryResult)); context.result(JsonUtils.toJson(queryOutput));
} }
catch(Exception e) catch(Exception e)
{ {
@ -488,12 +488,12 @@ public class QJavalinImplementation
{ {
try try
{ {
MetaDataRequest metaDataRequest = new MetaDataRequest(qInstance); MetaDataInput metaDataInput = new MetaDataInput(qInstance);
setupSession(context, metaDataRequest); setupSession(context, metaDataInput);
MetaDataAction metaDataAction = new MetaDataAction(); MetaDataAction metaDataAction = new MetaDataAction();
MetaDataResult metaDataResult = metaDataAction.execute(metaDataRequest); MetaDataOutput metaDataOutput = metaDataAction.execute(metaDataInput);
context.result(JsonUtils.toJson(metaDataResult)); context.result(JsonUtils.toJson(metaDataOutput));
} }
catch(Exception e) catch(Exception e)
{ {
@ -510,13 +510,13 @@ public class QJavalinImplementation
{ {
try try
{ {
TableMetaDataRequest tableMetaDataRequest = new TableMetaDataRequest(qInstance); TableMetaDataInput tableMetaDataInput = new TableMetaDataInput(qInstance);
setupSession(context, tableMetaDataRequest); setupSession(context, tableMetaDataInput);
tableMetaDataRequest.setTableName(context.pathParam("table")); tableMetaDataInput.setTableName(context.pathParam("table"));
TableMetaDataAction tableMetaDataAction = new TableMetaDataAction(); TableMetaDataAction tableMetaDataAction = new TableMetaDataAction();
TableMetaDataResult tableMetaDataResult = tableMetaDataAction.execute(tableMetaDataRequest); TableMetaDataOutput tableMetaDataOutput = tableMetaDataAction.execute(tableMetaDataInput);
context.result(JsonUtils.toJson(tableMetaDataResult)); context.result(JsonUtils.toJson(tableMetaDataOutput));
} }
catch(Exception e) catch(Exception e)
{ {
@ -533,13 +533,13 @@ public class QJavalinImplementation
{ {
try try
{ {
ProcessMetaDataRequest processMetaDataRequest = new ProcessMetaDataRequest(qInstance); ProcessMetaDataInput processMetaDataInput = new ProcessMetaDataInput(qInstance);
setupSession(context, processMetaDataRequest); setupSession(context, processMetaDataInput);
processMetaDataRequest.setProcessName(context.pathParam("processName")); processMetaDataInput.setProcessName(context.pathParam("processName"));
ProcessMetaDataAction processMetaDataAction = new ProcessMetaDataAction(); ProcessMetaDataAction processMetaDataAction = new ProcessMetaDataAction();
ProcessMetaDataResult processMetaDataResult = processMetaDataAction.execute(processMetaDataRequest); ProcessMetaDataOutput processMetaDataOutput = processMetaDataAction.execute(processMetaDataInput);
context.result(JsonUtils.toJson(processMetaDataResult)); context.result(JsonUtils.toJson(processMetaDataOutput));
} }
catch(Exception e) catch(Exception e)
{ {

View File

@ -33,26 +33,26 @@ import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import com.kingsrook.qqq.backend.core.actions.RunProcessAction;
import com.kingsrook.qqq.backend.core.actions.async.AsyncJobManager; import com.kingsrook.qqq.backend.core.actions.async.AsyncJobManager;
import com.kingsrook.qqq.backend.core.actions.async.AsyncJobState; import com.kingsrook.qqq.backend.core.actions.async.AsyncJobState;
import com.kingsrook.qqq.backend.core.actions.async.AsyncJobStatus; import com.kingsrook.qqq.backend.core.actions.async.AsyncJobStatus;
import com.kingsrook.qqq.backend.core.actions.async.JobGoingAsyncException; import com.kingsrook.qqq.backend.core.actions.async.JobGoingAsyncException;
import com.kingsrook.qqq.backend.core.callbacks.QProcessCallback; import com.kingsrook.qqq.backend.core.actions.processes.QProcessCallback;
import com.kingsrook.qqq.backend.core.actions.processes.RunProcessAction;
import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.exceptions.QException;
import com.kingsrook.qqq.backend.core.exceptions.QModuleDispatchException; import com.kingsrook.qqq.backend.core.exceptions.QModuleDispatchException;
import com.kingsrook.qqq.backend.core.exceptions.QUserFacingException; import com.kingsrook.qqq.backend.core.exceptions.QUserFacingException;
import com.kingsrook.qqq.backend.core.model.actions.processes.ProcessState; import com.kingsrook.qqq.backend.core.model.actions.processes.ProcessState;
import com.kingsrook.qqq.backend.core.model.actions.processes.RunProcessRequest; import com.kingsrook.qqq.backend.core.model.actions.processes.RunProcessInput;
import com.kingsrook.qqq.backend.core.model.actions.processes.RunProcessResult; import com.kingsrook.qqq.backend.core.model.actions.processes.RunProcessOutput;
import com.kingsrook.qqq.backend.core.model.actions.query.QCriteriaOperator; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QCriteriaOperator;
import com.kingsrook.qqq.backend.core.model.actions.query.QFilterCriteria; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterCriteria;
import com.kingsrook.qqq.backend.core.model.actions.query.QQueryFilter; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
import com.kingsrook.qqq.backend.core.model.data.QRecord; import com.kingsrook.qqq.backend.core.model.data.QRecord;
import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData; import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.processes.QProcessMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QProcessMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
import com.kingsrook.qqq.backend.core.utils.CollectionUtils; import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
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;
@ -135,31 +135,31 @@ public class QJavalinProcessHandler
LOG.info(startAfterStep == null ? "Initiating process [" + processName + "] [" + processUUID + "]" LOG.info(startAfterStep == null ? "Initiating process [" + processName + "] [" + processUUID + "]"
: "Resuming process [" + processName + "] [" + processUUID + "] after step [" + startAfterStep + "]"); : "Resuming process [" + processName + "] [" + processUUID + "] after step [" + startAfterStep + "]");
RunProcessRequest runProcessRequest = new RunProcessRequest(QJavalinImplementation.qInstance); RunProcessInput runProcessInput = new RunProcessInput(QJavalinImplementation.qInstance);
QJavalinImplementation.setupSession(context, runProcessRequest); QJavalinImplementation.setupSession(context, runProcessInput);
runProcessRequest.setProcessName(processName); runProcessInput.setProcessName(processName);
runProcessRequest.setFrontendStepBehavior(RunProcessRequest.FrontendStepBehavior.BREAK); runProcessInput.setFrontendStepBehavior(RunProcessInput.FrontendStepBehavior.BREAK);
runProcessRequest.setProcessUUID(processUUID); runProcessInput.setProcessUUID(processUUID);
runProcessRequest.setStartAfterStep(startAfterStep); runProcessInput.setStartAfterStep(startAfterStep);
populateRunProcessRequestWithValuesFromContext(context, runProcessRequest); populateRunProcessRequestWithValuesFromContext(context, runProcessInput);
//////////////////////////////////////// ////////////////////////////////////////
// run the process as an async action // // run the process as an async action //
//////////////////////////////////////// ////////////////////////////////////////
Integer timeout = getTimeoutMillis(context); Integer timeout = getTimeoutMillis(context);
RunProcessResult runProcessResult = new AsyncJobManager().startJob(timeout, TimeUnit.MILLISECONDS, (callback) -> RunProcessOutput runProcessOutput = new AsyncJobManager().startJob(timeout, TimeUnit.MILLISECONDS, (callback) ->
{ {
runProcessRequest.setAsyncJobCallback(callback); runProcessInput.setAsyncJobCallback(callback);
return (new RunProcessAction().execute(runProcessRequest)); return (new RunProcessAction().execute(runProcessInput));
}); });
LOG.info("Process result error? " + runProcessResult.getException()); LOG.info("Process result error? " + runProcessOutput.getException());
for(QFieldMetaData outputField : QJavalinImplementation.qInstance.getProcess(runProcessRequest.getProcessName()).getOutputFields()) for(QFieldMetaData outputField : QJavalinImplementation.qInstance.getProcess(runProcessInput.getProcessName()).getOutputFields())
{ {
LOG.info("Process result output value: " + outputField.getName() + ": " + runProcessResult.getValues().get(outputField.getName())); LOG.info("Process result output value: " + outputField.getName() + ": " + runProcessOutput.getValues().get(outputField.getName()));
} }
serializeRunProcessResultForCaller(resultForCaller, runProcessResult); serializeRunProcessResultForCaller(resultForCaller, runProcessOutput);
} }
catch(JobGoingAsyncException jgae) catch(JobGoingAsyncException jgae)
{ {
@ -185,17 +185,17 @@ public class QJavalinProcessHandler
** Whether a step finished synchronously or asynchronously, return its data ** Whether a step finished synchronously or asynchronously, return its data
** to the caller the same way. ** to the caller the same way.
*******************************************************************************/ *******************************************************************************/
private static void serializeRunProcessResultForCaller(Map<String, Object> resultForCaller, RunProcessResult runProcessResult) private static void serializeRunProcessResultForCaller(Map<String, Object> resultForCaller, RunProcessOutput runProcessOutput)
{ {
if(runProcessResult.getException().isPresent()) if(runProcessOutput.getException().isPresent())
{ {
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
// per code coverage, this path may never actually get hit... // // per code coverage, this path may never actually get hit... //
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
serializeRunProcessExceptionForCaller(resultForCaller, runProcessResult.getException().get()); serializeRunProcessExceptionForCaller(resultForCaller, runProcessOutput.getException().get());
} }
resultForCaller.put("values", runProcessResult.getValues()); resultForCaller.put("values", runProcessOutput.getValues());
runProcessResult.getProcessState().getNextStepName().ifPresent(nextStep -> resultForCaller.put("nextStep", nextStep)); runProcessOutput.getProcessState().getNextStepName().ifPresent(nextStep -> resultForCaller.put("nextStep", nextStep));
} }
@ -227,7 +227,7 @@ public class QJavalinProcessHandler
** todo - better from POST body, or with a "field-" type of prefix?? ** todo - better from POST body, or with a "field-" type of prefix??
** **
*******************************************************************************/ *******************************************************************************/
private static void populateRunProcessRequestWithValuesFromContext(Context context, RunProcessRequest runProcessRequest) throws IOException private static void populateRunProcessRequestWithValuesFromContext(Context context, RunProcessInput runProcessInput) throws IOException
{ {
for(Map.Entry<String, List<String>> queryParam : context.queryParamMap().entrySet()) for(Map.Entry<String, List<String>> queryParam : context.queryParamMap().entrySet())
{ {
@ -235,14 +235,14 @@ public class QJavalinProcessHandler
List<String> values = queryParam.getValue(); List<String> values = queryParam.getValue();
if(CollectionUtils.nullSafeHasContents(values)) if(CollectionUtils.nullSafeHasContents(values))
{ {
runProcessRequest.addValue(fieldName, values.get(0)); runProcessInput.addValue(fieldName, values.get(0));
} }
} }
QQueryFilter initialRecordsFilter = buildProcessInitRecordsFilter(context, runProcessRequest); QQueryFilter initialRecordsFilter = buildProcessInitRecordsFilter(context, runProcessInput);
if(initialRecordsFilter != null) if(initialRecordsFilter != null)
{ {
runProcessRequest.setCallback(new QProcessCallback() runProcessInput.setCallback(new QProcessCallback()
{ {
@Override @Override
public QQueryFilter getQueryFilter() public QQueryFilter getQueryFilter()
@ -266,10 +266,10 @@ public class QJavalinProcessHandler
/******************************************************************************* /*******************************************************************************
** **
*******************************************************************************/ *******************************************************************************/
private static QQueryFilter buildProcessInitRecordsFilter(Context context, RunProcessRequest runProcessRequest) throws IOException private static QQueryFilter buildProcessInitRecordsFilter(Context context, RunProcessInput runProcessInput) throws IOException
{ {
QInstance instance = runProcessRequest.getInstance(); QInstance instance = runProcessInput.getInstance();
QProcessMetaData process = instance.getProcess(runProcessRequest.getProcessName()); QProcessMetaData process = instance.getProcess(runProcessInput.getProcessName());
QTableMetaData table = instance.getTable(process.getTableName()); QTableMetaData table = instance.getTable(process.getTableName());
if(table == null) if(table == null)
@ -358,8 +358,8 @@ public class QJavalinProcessHandler
Optional<ProcessState> processState = RunProcessAction.getState(processUUID); Optional<ProcessState> processState = RunProcessAction.getState(processUUID);
if(processState.isPresent()) if(processState.isPresent())
{ {
RunProcessResult runProcessResult = new RunProcessResult(processState.get()); RunProcessOutput runProcessOutput = new RunProcessOutput(processState.get());
serializeRunProcessResultForCaller(resultForCaller, runProcessResult); serializeRunProcessResultForCaller(resultForCaller, runProcessOutput);
} }
else else
{ {

View File

@ -26,9 +26,9 @@ import java.net.URLEncoder;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.List; import java.util.List;
import com.kingsrook.qqq.backend.core.actions.async.AsyncJobState; import com.kingsrook.qqq.backend.core.actions.async.AsyncJobState;
import com.kingsrook.qqq.backend.core.model.actions.query.QCriteriaOperator; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QCriteriaOperator;
import com.kingsrook.qqq.backend.core.model.actions.query.QFilterCriteria; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterCriteria;
import com.kingsrook.qqq.backend.core.model.actions.query.QQueryFilter; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
import com.kingsrook.qqq.backend.core.utils.JsonUtils; import com.kingsrook.qqq.backend.core.utils.JsonUtils;
import kong.unirest.HttpResponse; import kong.unirest.HttpResponse;
import kong.unirest.Unirest; import kong.unirest.Unirest;

View File

@ -27,18 +27,18 @@ import java.sql.Connection;
import java.util.List; import java.util.List;
import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.exceptions.QException;
import com.kingsrook.qqq.backend.core.exceptions.QValueException; import com.kingsrook.qqq.backend.core.exceptions.QValueException;
import com.kingsrook.qqq.backend.core.interfaces.BackendStep; import com.kingsrook.qqq.backend.core.actions.processes.BackendStep;
import com.kingsrook.qqq.backend.core.interfaces.mock.MockBackendStep; import com.kingsrook.qqq.backend.core.processes.implementations.mock.MockBackendStep;
import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepRequest; import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepInput;
import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepResult; import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepOutput;
import com.kingsrook.qqq.backend.core.model.metadata.QAuthenticationMetaData; 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.code.QCodeReference;
import com.kingsrook.qqq.backend.core.model.metadata.QCodeType; import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeType;
import com.kingsrook.qqq.backend.core.model.metadata.QCodeUsage; import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeUsage;
import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData; import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.QFieldType; import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData; import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.processes.QBackendStepMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QBackendStepMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.processes.QFunctionInputMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QFunctionInputMetaData;
@ -311,11 +311,11 @@ public class TestUtils
** **
******************************************************************************/ ******************************************************************************/
@Override @Override
public void run(RunBackendStepRequest runBackendStepRequest, RunBackendStepResult runBackendStepResult) throws QException public void run(RunBackendStepInput runBackendStepInput, RunBackendStepOutput runBackendStepOutput) throws QException
{ {
try try
{ {
Thread.sleep(runBackendStepRequest.getValueInteger(FIELD_SLEEP_MILLIS)); Thread.sleep(runBackendStepInput.getValueInteger(FIELD_SLEEP_MILLIS));
} }
catch(InterruptedException e) catch(InterruptedException e)
{ {
@ -357,12 +357,12 @@ public class TestUtils
** **
******************************************************************************/ ******************************************************************************/
@Override @Override
public void run(RunBackendStepRequest runBackendStepRequest, RunBackendStepResult runBackendStepResult) throws QException public void run(RunBackendStepInput runBackendStepInput, RunBackendStepOutput runBackendStepOutput) throws QException
{ {
int sleepMillis; int sleepMillis;
try try
{ {
sleepMillis = runBackendStepRequest.getValueInteger(FIELD_SLEEP_MILLIS); sleepMillis = runBackendStepInput.getValueInteger(FIELD_SLEEP_MILLIS);
} }
catch(QValueException qve) catch(QValueException qve)
{ {