mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Reorganize packages; rename Request to Input and Response to Output
This commit is contained in:
4
pom.xml
4
pom.xml
@ -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>
|
||||||
|
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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
|
||||||
{
|
{
|
||||||
|
@ -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;
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user