diff --git a/modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDefinitionCollectionResource.java b/modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDefinitionCollectionResource.java index 808f30de407..b334c77e88e 100644 --- a/modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDefinitionCollectionResource.java +++ b/modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDefinitionCollectionResource.java @@ -66,7 +66,7 @@ public class AppDefinitionCollectionResource { @Autowired(required=false) protected AppRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of app definitions", nickname = "listAppDefinitions", tags = { "App Definitions" }) + @ApiOperation(value = "List of app definitions", nickname = "listAppDefinitions", tags = { "App Definitions" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "category", dataType = "string", value = "Only return app definitions with the given category.", paramType = "query"), @ApiImplicitParam(name = "categoryLike", dataType = "string", value = "Only return app definitions with a category like the given value.", paramType = "query"), diff --git a/modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDeploymentCollectionResource.java b/modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDeploymentCollectionResource.java index f163eb0aca5..44f62b710c5 100644 --- a/modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDeploymentCollectionResource.java +++ b/modules/flowable-app-engine-rest/src/main/java/org/flowable/app/rest/service/api/repository/AppDeploymentCollectionResource.java @@ -80,7 +80,7 @@ public class AppDeploymentCollectionResource { @Autowired(required=false) protected AppRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of App Deployments", nickname = "listAppDeployments", tags = { "App Deployments" }) + @ApiOperation(value = "List of App Deployments", nickname = "listAppDeployments", tags = { "App Deployments" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "name", dataType = "string", value = "Only return app deployments with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return app deployments with a name like the given name.", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/caze/HistoricCaseInstanceCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/caze/HistoricCaseInstanceCollectionResource.java index 1541aa5b4c6..8a70d4d64c3 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/caze/HistoricCaseInstanceCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/caze/HistoricCaseInstanceCollectionResource.java @@ -46,7 +46,7 @@ @Api(tags = { "History Case" }, authorizations = { @Authorization(value = "basicAuth") }) public class HistoricCaseInstanceCollectionResource extends HistoricCaseInstanceBaseResource { - @ApiOperation(value = "List of historic case instances", tags = { "History Case" }, nickname = "listHistoricCaseInstances") + @ApiOperation(value = "List of historic case instances", tags = { "History Case" }, nickname = "listHistoricCaseInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "caseInstanceId", dataType = "string", value = "An id of the historic case instance.", paramType = "query"), @ApiImplicitParam(name = "caseInstanceIds", dataType = "string", value = "Only return historic case instances with the given comma-separated ids.", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/task/HistoricTaskInstanceCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/task/HistoricTaskInstanceCollectionResource.java index 66bf68f2ef1..858ed57dea8 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/task/HistoricTaskInstanceCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/task/HistoricTaskInstanceCollectionResource.java @@ -39,7 +39,7 @@ @Api(tags = { "History Task" }, authorizations = { @Authorization(value = "basicAuth") }) public class HistoricTaskInstanceCollectionResource extends HistoricTaskInstanceBaseResource { - @ApiOperation(value = "List historic task instances", tags = { "History Task" }, nickname = "listHistoricTaskInstances") + @ApiOperation(value = "List historic task instances", tags = { "History Task" }, nickname = "listHistoricTaskInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "taskId", dataType = "string", value = "An id of the historic task instance.", paramType = "query"), @ApiImplicitParam(name = "caseInstanceId", dataType = "string", value = "The case instance id of the historic task instance.", paramType = "query"), @@ -226,6 +226,10 @@ public DataResponse getHistoricProcessInstances(@A queryRequest.setDueDateBefore(RequestUtil.getDate(allRequestParams, "dueDateBefore")); } + if (allRequestParams.containsKey("withoutDueDate") && Boolean.parseBoolean(allRequestParams.get("withoutDueDate"))) { + queryRequest.setWithoutDueDate(Boolean.TRUE); + } + if (allRequestParams.get("taskCreatedOn") != null) { queryRequest.setTaskCreatedOn(RequestUtil.getDate(allRequestParams, "taskCreatedOn")); } diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/variable/HistoricVariableInstanceCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/variable/HistoricVariableInstanceCollectionResource.java index 3316e5dec66..120b6287e93 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/variable/HistoricVariableInstanceCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/history/variable/HistoricVariableInstanceCollectionResource.java @@ -36,7 +36,7 @@ @Api(tags = { "History" }, authorizations = { @Authorization(value = "basicAuth") }) public class HistoricVariableInstanceCollectionResource extends HistoricVariableInstanceBaseResource { - @ApiOperation(value = "List of historic variable instances", tags = { "History" }, nickname = "listHistoricVariableInstances") + @ApiOperation(value = "List of historic variable instances", tags = { "History" }, nickname = "listHistoricVariableInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "caseInstanceId", dataType = "string", value = "The case instance id of the historic variable instance.", paramType = "query"), @ApiImplicitParam(name = "taskId", dataType = "string", value = "The task id of the historic variable instance.", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/DeadLetterJobCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/DeadLetterJobCollectionResource.java index d7faaf76ef3..a4564ee43d9 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/DeadLetterJobCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/DeadLetterJobCollectionResource.java @@ -55,7 +55,7 @@ public class DeadLetterJobCollectionResource { @Autowired(required=false) protected CmmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List deadletter jobs", tags = { "Jobs" }, nickname = "listDeadLetterJobs") + @ApiOperation(value = "List deadletter jobs", tags = { "Jobs" }, nickname = "listDeadLetterJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return job with the given id", paramType = "query"), @ApiImplicitParam(name = "caseInstanceId", dataType = "string", value = "Only return jobs part of a case with the given id", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/HistoryJobCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/HistoryJobCollectionResource.java index 23b96fff397..0461525ce96 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/HistoryJobCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/HistoryJobCollectionResource.java @@ -52,7 +52,7 @@ public class HistoryJobCollectionResource { @Autowired(required=false) protected CmmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List history jobs", tags = { "Jobs" }, nickname = "listDeadLetterJobs") + @ApiOperation(value = "List history jobs", tags = { "Jobs" }, nickname = "listDeadLetterJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return the job with the given id", paramType = "query"), @ApiImplicitParam(name = "withException", dataType = "boolean", value = "If true, only return jobs for which an exception occurred while executing it. If false, this parameter is ignored.", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/JobCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/JobCollectionResource.java index 89a533e50e5..e646605b66b 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/JobCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/JobCollectionResource.java @@ -73,7 +73,7 @@ public class JobCollectionResource { protected CmmnEngineConfiguration cmmnEngineConfiguration; // Fixme documentation & real parameters - @ApiOperation(value = "List jobs", tags = { "Jobs" }, nickname = "listJobs") + @ApiOperation(value = "List jobs", tags = { "Jobs" }, nickname = "listJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return job with the given id", paramType = "query"), @ApiImplicitParam(name = "caseInstanceId", dataType = "string", value = "Only return jobs part of a case with the given id", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/SuspendedJobCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/SuspendedJobCollectionResource.java index c5fbc7124a2..a64e15e80af 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/SuspendedJobCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/SuspendedJobCollectionResource.java @@ -56,7 +56,7 @@ public class SuspendedJobCollectionResource { protected CmmnRestApiInterceptor restApiInterceptor; // Fixme documentation & real parameters - @ApiOperation(value = "List suspended jobs", tags = { "Jobs" }, nickname = "listSuspendedJobs") + @ApiOperation(value = "List suspended jobs", tags = { "Jobs" }, nickname = "listSuspendedJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return job with the given id", paramType = "query"), @ApiImplicitParam(name = "caseInstanceId", dataType = "string", value = "Only return jobs part of a case with the given id", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/TimerJobCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/TimerJobCollectionResource.java index a7689be544b..32bdddb5812 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/TimerJobCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/management/TimerJobCollectionResource.java @@ -56,7 +56,7 @@ public class TimerJobCollectionResource { protected CmmnRestApiInterceptor restApiInterceptor; // Fixme documentation & real parameters - @ApiOperation(value = "List timer jobs", tags = { "Jobs" }, nickname = "listTimerJobs") + @ApiOperation(value = "List timer jobs", tags = { "Jobs" }, nickname = "listTimerJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return job with the given id", paramType = "query"), @ApiImplicitParam(name = "caseInstanceId", dataType = "string", value = "Only return jobs part of a case with the given id", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/repository/CaseDefinitionCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/repository/CaseDefinitionCollectionResource.java index da841d1ce64..bc0fd316adf 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/repository/CaseDefinitionCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/repository/CaseDefinitionCollectionResource.java @@ -67,24 +67,26 @@ public class CaseDefinitionCollectionResource { @Autowired(required=false) protected CmmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of case definitions", tags = { "Case Definitions" }, nickname = "listCaseDefinitions") + @ApiOperation(value = "List of case definitions", tags = { "Case Definitions" }, nickname = "listCaseDefinitions", + notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?categoryLike=acme%25' to match categories starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "version", dataType = "integer", value = "Only return case definitions with the given version.", paramType = "query"), @ApiImplicitParam(name = "name", dataType = "string", value = "Only return case definitions with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return case definitions with a name like the given name.", paramType = "query"), - @ApiImplicitParam(name = "nameLikeIgnoreCase", dataType = "string", value = "Only return case definitions with a name like the given name ignoring case.", paramType = "query"), + @ApiImplicitParam(name = "nameLikeIgnoreCase", dataType = "string", value = "Only return case definitions with a name like the given name, ignoring case.", paramType = "query"), @ApiImplicitParam(name = "key", dataType = "string", value = "Only return case definitions with the given key.", paramType = "query"), - @ApiImplicitParam(name = "keyLike", dataType = "string", value = "Only return case definitions with a name like the given key.", paramType = "query"), + @ApiImplicitParam(name = "keyLike", dataType = "string", value = "Only return case definitions with a key like the given key.", paramType = "query"), @ApiImplicitParam(name = "resourceName", dataType = "string", value = "Only return case definitions with the given resource name.", paramType = "query"), - @ApiImplicitParam(name = "resourceNameLike", dataType = "string", value = "Only return case definitions with a name like the given resource name.", paramType = "query"), + @ApiImplicitParam(name = "resourceNameLike", dataType = "string", value = "Only return case definitions with a resource name like the given resource name.", paramType = "query"), @ApiImplicitParam(name = "category", dataType = "string", value = "Only return case definitions with the given category.", paramType = "query"), - @ApiImplicitParam(name = "categoryLike", dataType = "string", value = "Only return case definitions with a category like the given name.", paramType = "query"), + @ApiImplicitParam(name = "categoryLike", dataType = "string", value = "Only return case definitions with a category like the given category.", paramType = "query"), @ApiImplicitParam(name = "categoryNotEquals", dataType = "string", value = "Only return case definitions which do not have the given category.", paramType = "query"), @ApiImplicitParam(name = "deploymentId", dataType = "string", value = "Only return case definitions which are part of a deployment with the given deployment id.", paramType = "query"), @ApiImplicitParam(name = "parentDeploymentId", dataType = "string", value = "Only return case definitions which are part of a deployment with the given parent deployment id.", paramType = "query"), - @ApiImplicitParam(name = "startableByUser", dataType = "string", value = "Only return case definitions which are part of a deployment with the given id.", paramType = "query"), + @ApiImplicitParam(name = "startableByUser", dataType = "string", value = "Only return case definitions which can be started by the user with the given id.", paramType = "query"), + @ApiImplicitParam(name = "tenantId", dataType = "string", value = "Only return case definitions with the given tenant id.", paramType = "query"), + @ApiImplicitParam(name = "tenantIdLike", dataType = "string", value = "Only return case definitions with a tenant id like the given tenant id.", paramType = "query"), @ApiImplicitParam(name = "latest", dataType = "boolean", value = "Only return the latest case definition versions. Can only be used together with key and keyLike parameters, using any other parameter will result in a 400-response.", paramType = "query"), - @ApiImplicitParam(name = "suspended", dataType = "boolean", value = "If true, only returns case definitions which are suspended. If false, only active process definitions (which are not suspended) are returned.", paramType = "query"), @ApiImplicitParam(name = "sort", dataType = "string", value = "Property to sort on, to be used together with the order.", allowableValues = "name,id,key,category,deploymentId,version", paramType = "query"), @ApiImplicitParam(name = "order", dataType = "string", value = "The sort order, either 'asc' or 'desc'. Defaults to 'asc'.", paramType = "query"), @ApiImplicitParam(name = "start", dataType = "integer", value = "Index of the first row to fetch. Defaults to 0.", paramType = "query"), @@ -95,7 +97,7 @@ public class CaseDefinitionCollectionResource { @ApiResponse(code = 400, message = "Indicates a parameter was passed in the wrong format or that latest is used with other parameters other than key and keyLike. The status-message contains additional information.") }) @GetMapping(value = "/cmmn-repository/case-definitions", produces = "application/json") - public DataResponse getProcessDefinitions(@ApiParam(hidden = true) @RequestParam Map allRequestParams) { + public DataResponse getCaseDefinitions(@ApiParam(hidden = true) @RequestParam Map allRequestParams) { CaseDefinitionQuery caseDefinitionQuery = repositoryService.createCaseDefinitionQuery(); // Populate filter-parameters diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/repository/DeploymentCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/repository/DeploymentCollectionResource.java index 3111d413d24..d46cbee4cde 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/repository/DeploymentCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/repository/DeploymentCollectionResource.java @@ -83,7 +83,7 @@ public class DeploymentCollectionResource { @Autowired(required=false) protected CmmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List Deployments", tags = { "Deployment" }, nickname="listDeployments") + @ApiOperation(value = "List Deployments", tags = { "Deployment" }, nickname="listDeployments", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "name", dataType = "string", value = "Only return deployments with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return deployments with a name like the given name.", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/caze/CaseInstanceCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/caze/CaseInstanceCollectionResource.java index 8ca6912b85b..13a99d92599 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/caze/CaseInstanceCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/caze/CaseInstanceCollectionResource.java @@ -58,7 +58,7 @@ public class CaseInstanceCollectionResource extends BaseCaseInstanceResource { @Autowired protected CmmnHistoryService historyService; - @ApiOperation(value = "List case instances", nickname ="listCaseInstances", tags = { "Case Instances" }) + @ApiOperation(value = "List case instances", nickname ="listCaseInstances", tags = { "Case Instances" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return case instances with the given id.", paramType = "query"), @ApiImplicitParam(name = "ids", dataType = "string", value = "Only return case instances with the given comma-separated ids.", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/task/TaskCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/task/TaskCollectionResource.java index 5dbbb1d4269..53455d553eb 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/task/TaskCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/task/TaskCollectionResource.java @@ -53,10 +53,10 @@ @Api(tags = { "Tasks" }, authorizations = { @Authorization(value = "basicAuth") }) public class TaskCollectionResource extends TaskBaseResource { - @ApiOperation(value = "List of tasks", nickname="listTasks", tags = { "Tasks" }) + @ApiOperation(value = "List of tasks", nickname="listTasks", tags = { "Tasks" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "taskId", dataType = "string", value = "Only return tasks with the given id.", paramType = "query"), - @ApiImplicitParam(name = "name", dataType = "string", value = "Only return tasks with the given version.", paramType = "query"), + @ApiImplicitParam(name = "name", dataType = "string", value = "Only return tasks with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return tasks with a name like the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLikeIgnoreCase", dataType = "string", value = "Only return tasks with a name like the given name ignoring case.", paramType = "query"), @ApiImplicitParam(name = "description", dataType = "string", value = "Only return tasks with the given description.", paramType = "query"), @@ -290,6 +290,10 @@ public DataResponse getTasks(@ApiParam(hidden = true) @RequestPara request.setDueAfter(RequestUtil.getDate(requestParams, "dueAfter")); } + if (requestParams.containsKey("withoutDueDate") && Boolean.parseBoolean(requestParams.get("withoutDueDate"))) { + request.setWithoutDueDate(Boolean.TRUE); + } + if (requestParams.containsKey("active")) { request.setActive(Boolean.valueOf(requestParams.get("active"))); } diff --git a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/variable/VariableInstanceCollectionResource.java b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/variable/VariableInstanceCollectionResource.java index 14791e32f0e..e260b747e14 100644 --- a/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/variable/VariableInstanceCollectionResource.java +++ b/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/variable/VariableInstanceCollectionResource.java @@ -36,7 +36,7 @@ @Api(tags = { "Runtime" }, authorizations = { @Authorization(value = "basicAuth") }) public class VariableInstanceCollectionResource extends VariableInstanceBaseResource { - @ApiOperation(value = "List of variable instances", tags = { "History" }, nickname = "listVariableInstances") + @ApiOperation(value = "List of variable instances", tags = { "History" }, nickname = "listVariableInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "caseInstanceId", dataType = "string", value = "The case instance id of the variable instance.", paramType = "query"), @ApiImplicitParam(name = "taskId", dataType = "string", value = "The task id of the variable instance.", paramType = "query"), diff --git a/modules/flowable-cmmn-rest/src/test/java/org/flowable/cmmn/rest/service/api/history/HistoricTaskInstanceCollectionResourceTest.java b/modules/flowable-cmmn-rest/src/test/java/org/flowable/cmmn/rest/service/api/history/HistoricTaskInstanceCollectionResourceTest.java index 538afda3d93..510f2a74edf 100644 --- a/modules/flowable-cmmn-rest/src/test/java/org/flowable/cmmn/rest/service/api/history/HistoricTaskInstanceCollectionResourceTest.java +++ b/modules/flowable-cmmn-rest/src/test/java/org/flowable/cmmn/rest/service/api/history/HistoricTaskInstanceCollectionResourceTest.java @@ -147,6 +147,12 @@ public void testQueryTaskInstances() throws Exception { assertResultsPresentInDataResponse(url + "?dueDateBefore=" + getISODateString(new GregorianCalendar(2013, 4, 1).getTime()), 1, task.getId()); + // Without due date — task has a due date, task1 (completed) and task2 do not + assertResultsPresentInDataResponse(url + "?withoutDueDate=true", 2, task1.getId(), task2.getId()); + + // withoutDueDate=false must be ignored + assertResultsPresentInDataResponse(url + "?withoutDueDate=false", 3, task.getId(), task1.getId(), task2.getId()); + created.set(Calendar.YEAR, 2002); assertResultsPresentInDataResponse(url + "?taskCreatedBefore=" + getISODateString(created.getTime()), 1, task1.getId()); assertResultsPresentInDataResponse(url + "?taskCreatedBefore=" +getIsoDateStringWithoutSeconds(created.getTime()), 1, task1.getId()); diff --git a/modules/flowable-cmmn-rest/src/test/java/org/flowable/cmmn/rest/service/api/runtime/TaskCollectionResourceTest.java b/modules/flowable-cmmn-rest/src/test/java/org/flowable/cmmn/rest/service/api/runtime/TaskCollectionResourceTest.java index e0d531815ac..fa54e191038 100644 --- a/modules/flowable-cmmn-rest/src/test/java/org/flowable/cmmn/rest/service/api/runtime/TaskCollectionResourceTest.java +++ b/modules/flowable-cmmn-rest/src/test/java/org/flowable/cmmn/rest/service/api/runtime/TaskCollectionResourceTest.java @@ -465,6 +465,20 @@ public void testGetTasksDateInfo() throws Exception { url = CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_COLLECTION) + "?dueBefore=" + getISODateString(inBetweenTaskCreation.getTime()); assertResultsPresentInDataResponse(url, preparedAdhocTask.getId()); + // Without due date filtering — both prepared tasks have a due date, so no results yet + url = CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_COLLECTION) + "?withoutDueDate=true"; + assertResultsPresentInDataResponse(url); + + // Clear the due date on the case task and verify it now matches + Task caseTaskToUpdate = taskService.createTaskQuery().taskId(preparedCaseTask.getId()).singleResult(); + caseTaskToUpdate.setDueDate(null); + taskService.saveTask(caseTaskToUpdate); + assertResultsPresentInDataResponse(url, preparedCaseTask.getId()); + + // withoutDueDate=false must be ignored (matches the documented behavior) + url = CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_COLLECTION) + "?withoutDueDate=false"; + assertResultsPresentInDataResponse(url, preparedAdhocTask.getId(), preparedCaseTask.getId()); + } finally { // Clean adhoc-tasks even if test fails List tasks = taskService.createTaskQuery().list(); diff --git a/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/history/HistoryDecisionExecutionCollectionResource.java b/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/history/HistoryDecisionExecutionCollectionResource.java index 7fdf481e626..df58be77783 100644 --- a/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/history/HistoryDecisionExecutionCollectionResource.java +++ b/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/history/HistoryDecisionExecutionCollectionResource.java @@ -62,7 +62,7 @@ public class HistoryDecisionExecutionCollectionResource { @Autowired(required=false) protected DmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of historic decision executions", nickname ="listHistoricDecisionExecutions", tags = { "Historic Decision Executions" }) + @ApiOperation(value = "List of historic decision executions", nickname ="listHistoricDecisionExecutions", tags = { "Historic Decision Executions" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return historic decision executions with the given id.", paramType = "query"), @ApiImplicitParam(name = "decisionDefinitionId", dataType = "string", value = "Only return historic decision executions with the given definition id.", paramType = "query"), diff --git a/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DecisionCollectionResource.java b/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DecisionCollectionResource.java index a0a4a1058d3..ce3cbc3e847 100644 --- a/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DecisionCollectionResource.java +++ b/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DecisionCollectionResource.java @@ -67,7 +67,7 @@ public class DecisionCollectionResource { @Autowired(required=false) protected DmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of decision", tags = { "Decisions" }, nickname = "listDecisions") + @ApiOperation(value = "List of decision", tags = { "Decisions" }, nickname = "listDecisions", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "category", dataType = "string", value = "Only return decision with the given category.", paramType = "query"), @ApiImplicitParam(name = "categoryLike", dataType = "string", value = "Only return decision with a category like the given name.", paramType = "query"), @@ -84,14 +84,14 @@ public class DecisionCollectionResource { @ApiImplicitParam(name = "parentDeploymentId", dataType = "string", value = "Only return decisions which are part of a deployment with the given parent deployment id.", paramType = "query"), @ApiImplicitParam(name = "tenantId", dataType = "string", value = "Only return decision with the given tenant ID.", paramType = "query"), @ApiImplicitParam(name = "decisionType", dataType = "string", value = "Only return decision with the given type.", paramType = "query"), - @ApiImplicitParam(name = "decisionTypeLike", dataType = "string", value = "Only return decision like the given type.", paramType = "query"), + @ApiImplicitParam(name = "decisionTypeLike", dataType = "string", value = "Only return decisions with a type like the given type.", paramType = "query"), @ApiImplicitParam(name = "sort", dataType = "string", value = "Property to sort on, to be used together with the order.", allowableValues = "name,id,key,category,deploymentId,version,decisionType", paramType = "query"), @ApiImplicitParam(name = "order", dataType = "string", value = "The sort order, either 'asc' or 'desc'. Defaults to 'asc'.", paramType = "query"), @ApiImplicitParam(name = "start", dataType = "integer", value = "Index of the first row to fetch. Defaults to 0.", paramType = "query"), @ApiImplicitParam(name = "size", dataType = "integer", value = "Number of rows to fetch, starting from start. Defaults to 10.", paramType = "query"), }) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Indicates request was successful and the process-definitions are returned"), + @ApiResponse(code = 200, message = "Indicates request was successful and the decisions are returned"), @ApiResponse(code = 400, message = "Indicates a parameter was passed in the wrong format or that latest is used with other parameters other than key and keyLike. The status-message contains additional information.") }) @GetMapping(value = "/dmn-repository/decisions", produces = "application/json") @@ -151,7 +151,7 @@ public DataResponse getDecisions(@ApiParam(hidden = true) @Req definitionQuery.decisionType(allRequestParams.get("decisionType")); } if (allRequestParams.containsKey("decisionTypeLike")) { - definitionQuery.decisionTypeLike(allRequestParams.get("decisionType")); + definitionQuery.decisionTypeLike(allRequestParams.get("decisionTypeLike")); } if (restApiInterceptor != null) { diff --git a/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DecisionTableCollectionResource.java b/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DecisionTableCollectionResource.java index 5f1afcb83c9..6c9112208cd 100644 --- a/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DecisionTableCollectionResource.java +++ b/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DecisionTableCollectionResource.java @@ -69,7 +69,7 @@ public class DecisionTableCollectionResource { @Autowired(required=false) protected DmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of decision tables", tags = { "Decision Tables" }, nickname = "listDecisionTables") + @ApiOperation(value = "List of decision tables", tags = { "Decision Tables" }, nickname = "listDecisionTables", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "category", dataType = "string", value = "Only return decision tables with the given category.", paramType = "query"), @ApiImplicitParam(name = "categoryLike", dataType = "string", value = "Only return decision tables with a category like the given name.", paramType = "query"), @@ -82,7 +82,7 @@ public class DecisionTableCollectionResource { @ApiImplicitParam(name = "resourceNameLike", dataType = "string", value = "Only return decision tables with a name like the given resource name.", paramType = "query"), @ApiImplicitParam(name = "version", dataType = "integer", value = "Only return decision tables with the given version.", paramType = "query"), @ApiImplicitParam(name = "latest", dataType = "boolean", value = "Only return the latest decision tables versions. Can only be used together with key and keyLike parameters, using any other parameter will result in a 400-response.", paramType = "query"), - @ApiImplicitParam(name = "deploymentId", dataType = "string", value = "Only return decision tables with the given category.", paramType = "query"), + @ApiImplicitParam(name = "deploymentId", dataType = "string", value = "Only return decision tables with the given deployment id.", paramType = "query"), @ApiImplicitParam(name = "tenantId", dataType = "string", value = "Only return decision tables with the given tenant ID.", paramType = "query"), @ApiImplicitParam(name = "sort", dataType = "string", value = "Property to sort on, to be used together with the order.", allowableValues = "name,id,key,category,deploymentId,version", paramType = "query"), @ApiImplicitParam(name = "order", dataType = "string", value = "The sort order, either 'asc' or 'desc'. Defaults to 'asc'.", paramType = "query"), @@ -90,7 +90,7 @@ public class DecisionTableCollectionResource { @ApiImplicitParam(name = "size", dataType = "integer", value = "Number of rows to fetch, starting from start. Defaults to 10.", paramType = "query"), }) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Indicates request was successful and the process-definitions are returned"), + @ApiResponse(code = 200, message = "Indicates request was successful and the decision tables are returned"), @ApiResponse(code = 400, message = "Indicates a parameter was passed in the wrong format or that latest is used with other parameters other than key and keyLike. The status-message contains additional information.") }) @GetMapping(value = "/dmn-repository/decision-tables", produces = "application/json") diff --git a/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DmnDeploymentCollectionResource.java b/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DmnDeploymentCollectionResource.java index 3c6ad218d78..6101ed70363 100644 --- a/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DmnDeploymentCollectionResource.java +++ b/modules/flowable-dmn-rest/src/main/java/org/flowable/dmn/rest/service/api/repository/DmnDeploymentCollectionResource.java @@ -77,7 +77,7 @@ public class DmnDeploymentCollectionResource { @Autowired(required=false) protected DmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of decision deployments", tags = { "Deployment" }, nickname = "listDecisionDeployments") + @ApiOperation(value = "List of decision deployments", tags = { "Deployment" }, nickname = "listDecisionDeployments", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "name", dataType = "string", value = "Only return decision deployments with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return decision deployments with a name like the given name.", paramType = "query"), diff --git a/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/ChannelDefinitionCollectionResource.java b/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/ChannelDefinitionCollectionResource.java index fa6b9bcf140..5c5bf818f45 100644 --- a/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/ChannelDefinitionCollectionResource.java +++ b/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/ChannelDefinitionCollectionResource.java @@ -68,25 +68,27 @@ public class ChannelDefinitionCollectionResource { @Autowired(required=false) protected EventRegistryRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of channel definitions", tags = { "Channel Definitions" }, nickname = "listChannelDefinitions") + @ApiOperation(value = "List of channel definitions", tags = { "Channel Definitions" }, nickname = "listChannelDefinitions", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "version", dataType = "integer", value = "Only return channel definitions with the given version.", paramType = "query"), @ApiImplicitParam(name = "name", dataType = "string", value = "Only return channel definitions with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return channel definitions with a name like the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLikeIgnoreCase", dataType = "string", value = "Only return channel definitions with a name like the given name (case-insensitive).", paramType = "query"), @ApiImplicitParam(name = "key", dataType = "string", value = "Only return channel definitions with the given key.", paramType = "query"), - @ApiImplicitParam(name = "keyLike", dataType = "string", value = "Only return channel definitions with a name like the given key.", paramType = "query"), - @ApiImplicitParam(name = "keyLikeIgnoreCase", dataType = "string", value = "Only return channel definitions with a name like the given key (case-insensitive).", paramType = "query"), + @ApiImplicitParam(name = "keyLike", dataType = "string", value = "Only return channel definitions with a key like the given key.", paramType = "query"), + @ApiImplicitParam(name = "keyLikeIgnoreCase", dataType = "string", value = "Only return channel definitions with a key like the given key (case-insensitive).", paramType = "query"), @ApiImplicitParam(name = "createTime", dataType = "date-time", value = "Only return channel definitions with the given create time.", paramType = "query"), @ApiImplicitParam(name = "createTimeAfter", dataType = "date-time", value = "Only return channel definitions with a create time after the given date.", paramType = "query"), @ApiImplicitParam(name = "createTimeBefore", dataType = "date-time", value = "Only return channel definitions with a create time before the given date.", paramType = "query"), @ApiImplicitParam(name = "resourceName", dataType = "string", value = "Only return channel definitions with the given resource name.", paramType = "query"), - @ApiImplicitParam(name = "resourceNameLike", dataType = "string", value = "Only return channel definitions with a name like the given resource name.", paramType = "query"), + @ApiImplicitParam(name = "resourceNameLike", dataType = "string", value = "Only return channel definitions with a resource name like the given resource name.", paramType = "query"), @ApiImplicitParam(name = "category", dataType = "string", value = "Only return channel definitions with the given category.", paramType = "query"), - @ApiImplicitParam(name = "categoryLike", dataType = "string", value = "Only return channel definitions with a category like the given name.", paramType = "query"), + @ApiImplicitParam(name = "categoryLike", dataType = "string", value = "Only return channel definitions with a category like the given category.", paramType = "query"), @ApiImplicitParam(name = "categoryNotEquals", dataType = "string", value = "Only return channel definitions which do not have the given category.", paramType = "query"), @ApiImplicitParam(name = "deploymentId", dataType = "string", value = "Only return channel definitions which are part of a deployment with the given deployment id.", paramType = "query"), - @ApiImplicitParam(name = "parentDeploymentId", dataType = "string", value = "Only return channel definitions which are part of a deployment awith the given parent deployment id.", paramType = "query"), + @ApiImplicitParam(name = "parentDeploymentId", dataType = "string", value = "Only return channel definitions which are part of a deployment with the given parent deployment id.", paramType = "query"), + @ApiImplicitParam(name = "tenantId", dataType = "string", value = "Only return channel definitions with the given tenant id.", paramType = "query"), + @ApiImplicitParam(name = "tenantIdLike", dataType = "string", value = "Only return channel definitions with a tenant id like the given tenant id.", paramType = "query"), @ApiImplicitParam(name = "latest", dataType = "boolean", value = "Only return the latest channel definition versions. Can only be used together with key and keyLike parameters, using any other parameter will result in a 400-response.", paramType = "query"), @ApiImplicitParam(name = "onlyInbound", dataType = "boolean", value = "Only return the inbound channel definitions. Mutually exclusive with onlyOutbound", paramType = "query"), @ApiImplicitParam(name = "onlyOutbound", dataType = "boolean", value = "Only return the outbound channel definitions. Mutually exclusive with onlyInbound", paramType = "query"), diff --git a/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/DeploymentCollectionResource.java b/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/DeploymentCollectionResource.java index 7633e2d518f..b0472076b08 100644 --- a/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/DeploymentCollectionResource.java +++ b/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/DeploymentCollectionResource.java @@ -82,7 +82,7 @@ public class DeploymentCollectionResource { @Autowired(required=false) protected EventRegistryRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List Deployments", tags = { "Deployment" }, nickname="listDeployments") + @ApiOperation(value = "List Deployments", tags = { "Deployment" }, nickname="listDeployments", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "name", dataType = "string", value = "Only return deployments with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return deployments with a name like the given name.", paramType = "query"), diff --git a/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/EventDefinitionCollectionResource.java b/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/EventDefinitionCollectionResource.java index 1c0c447c362..0e290492fc5 100644 --- a/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/EventDefinitionCollectionResource.java +++ b/modules/flowable-event-registry-rest/src/main/java/org/flowable/eventregistry/rest/service/api/repository/EventDefinitionCollectionResource.java @@ -66,22 +66,24 @@ public class EventDefinitionCollectionResource { @Autowired(required=false) protected EventRegistryRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of event definitions", tags = { "Event Definitions" }, nickname = "listEventDefinitions") + @ApiOperation(value = "List of event definitions", tags = { "Event Definitions" }, nickname = "listEventDefinitions", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "version", dataType = "integer", value = "Only return event definitions with the given version.", paramType = "query"), @ApiImplicitParam(name = "name", dataType = "string", value = "Only return event definitions with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return event definitions with a name like the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLikeIgnoreCase", dataType = "string", value = "Only return event definitions with a name like the given name (case-insensitive).", paramType = "query"), @ApiImplicitParam(name = "key", dataType = "string", value = "Only return event definitions with the given key.", paramType = "query"), - @ApiImplicitParam(name = "keyLike", dataType = "string", value = "Only return event definitions with a name like the given key.", paramType = "query"), - @ApiImplicitParam(name = "keyLikeIgnoreCase", dataType = "string", value = "Only return event definitions with a name like the given key (case-insensitive).", paramType = "query"), + @ApiImplicitParam(name = "keyLike", dataType = "string", value = "Only return event definitions with a key like the given key.", paramType = "query"), + @ApiImplicitParam(name = "keyLikeIgnoreCase", dataType = "string", value = "Only return event definitions with a key like the given key (case-insensitive).", paramType = "query"), @ApiImplicitParam(name = "resourceName", dataType = "string", value = "Only return event definitions with the given resource name.", paramType = "query"), - @ApiImplicitParam(name = "resourceNameLike", dataType = "string", value = "Only return event definitions with a name like the given resource name.", paramType = "query"), + @ApiImplicitParam(name = "resourceNameLike", dataType = "string", value = "Only return event definitions with a resource name like the given resource name.", paramType = "query"), @ApiImplicitParam(name = "category", dataType = "string", value = "Only return event definitions with the given category.", paramType = "query"), - @ApiImplicitParam(name = "categoryLike", dataType = "string", value = "Only return event definitions with a category like the given name.", paramType = "query"), + @ApiImplicitParam(name = "categoryLike", dataType = "string", value = "Only return event definitions with a category like the given category.", paramType = "query"), @ApiImplicitParam(name = "categoryNotEquals", dataType = "string", value = "Only return event definitions which do not have the given category.", paramType = "query"), @ApiImplicitParam(name = "deploymentId", dataType = "string", value = "Only return event definitions which are part of a deployment with the given deployment id.", paramType = "query"), @ApiImplicitParam(name = "parentDeploymentId", dataType = "string", value = "Only return event definitions which are part of a deployment with the given parent deployment id.", paramType = "query"), + @ApiImplicitParam(name = "tenantId", dataType = "string", value = "Only return event definitions with the given tenant id.", paramType = "query"), + @ApiImplicitParam(name = "tenantIdLike", dataType = "string", value = "Only return event definitions with a tenant id like the given tenant id.", paramType = "query"), @ApiImplicitParam(name = "latest", dataType = "boolean", value = "Only return the latest event definition versions. Can only be used together with key and keyLike parameters, using any other parameter will result in a 400-response.", paramType = "query"), @ApiImplicitParam(name = "sort", dataType = "string", value = "Property to sort on, to be used together with the order.", allowableValues = "name,id,key,category,deploymentId,version", paramType = "query"), @ApiImplicitParam(name = "order", dataType = "string", value = "The sort order, either 'asc' or 'desc'. Defaults to 'asc'.", paramType = "query"), diff --git a/modules/flowable-external-job-rest/src/main/java/org/flowable/external/job/rest/service/api/query/ExternalWorkerJobCollectionResource.java b/modules/flowable-external-job-rest/src/main/java/org/flowable/external/job/rest/service/api/query/ExternalWorkerJobCollectionResource.java index a8ab4b16afb..649ceab0368 100644 --- a/modules/flowable-external-job-rest/src/main/java/org/flowable/external/job/rest/service/api/query/ExternalWorkerJobCollectionResource.java +++ b/modules/flowable-external-job-rest/src/main/java/org/flowable/external/job/rest/service/api/query/ExternalWorkerJobCollectionResource.java @@ -61,7 +61,7 @@ public ExternalWorkerJobCollectionResource(ExternalJobRestResponseFactory restRe @ApiOperation(value = "List External Worker Jobs", tags = { "Info and Query" }) @ApiImplicitParams({ - @ApiImplicitParam(name = "sort", dataType = "string", value = "The field to sort by. Defaults to 'id'.", allowableValues = "id,dueDate,createTime,executionId,processInstanceId,retries,tenantId", paramType = "body"), + @ApiImplicitParam(name = "sort", dataType = "string", value = "The field to sort by. Defaults to 'id'.", allowableValues = "id,dueDate,createTime,executionId,processInstanceId,retries,tenantId", paramType = "query"), }) @ApiResponses({ @ApiResponse(code = 200, message = "Indicates the requested jobs were returned."), diff --git a/modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/group/GroupCollectionResource.java b/modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/group/GroupCollectionResource.java index 89b3f1fc650..5ce9b25c592 100644 --- a/modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/group/GroupCollectionResource.java +++ b/modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/group/GroupCollectionResource.java @@ -70,7 +70,7 @@ public class GroupCollectionResource { @Autowired(required=false) protected IdmRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List groups", nickname="listGroups", tags = { "Groups" }, produces = "application/json") + @ApiOperation(value = "List groups", nickname="listGroups", tags = { "Groups" }, produces = "application/json", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return group with the given id", paramType = "query"), @ApiImplicitParam(name = "name", dataType = "string", value = "Only return groups with the given name", paramType = "query"), diff --git a/modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/user/UserCollectionResource.java b/modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/user/UserCollectionResource.java index fc59805f218..518ea34e86a 100644 --- a/modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/user/UserCollectionResource.java +++ b/modules/flowable-idm-rest/src/main/java/org/flowable/idm/rest/service/api/user/UserCollectionResource.java @@ -74,9 +74,9 @@ public class UserCollectionResource { @Autowired(required=false) protected IdmRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List users", nickname = "listUsers", tags = { "Users" }) + @ApiOperation(value = "List users", nickname = "listUsers", tags = { "Users" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ - @ApiImplicitParam(name = "id", dataType = "string", value = "Only return group with the given id", paramType = "query"), + @ApiImplicitParam(name = "id", dataType = "string", value = "Only return user with the given id", paramType = "query"), @ApiImplicitParam(name = "firstName", dataType = "string", value = "Only return users with the given firstname", paramType = "query"), @ApiImplicitParam(name = "lastName", dataType = "string", value = "Only return users with the given lastname", paramType = "query"), @ApiImplicitParam(name = "displayName", dataType = "string", value = "Only return users with the given displayName", paramType = "query"), @@ -92,7 +92,7 @@ public class UserCollectionResource { @ApiImplicitParam(name = "size", dataType = "integer", value = "Number of rows to fetch, starting from start. Defaults to 10.", paramType = "query"), }) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Indicates the group exists and is returned.") + @ApiResponse(code = 200, message = "Indicates the requested users are returned.") }) @GetMapping(value = "/users", produces = "application/json") public DataResponse getUsers(@ApiParam(hidden = true) @RequestParam Map allRequestParams) { diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricActivityInstanceCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricActivityInstanceCollectionResource.java index 0d7cc7ccf7a..b68ac7723c9 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricActivityInstanceCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricActivityInstanceCollectionResource.java @@ -39,7 +39,7 @@ @RestController public class HistoricActivityInstanceCollectionResource extends HistoricActivityInstanceBaseResource { - @ApiOperation(value = "List historic activity instances", tags = { "History" }, nickname = "listHistoricActivityInstances") + @ApiOperation(value = "List historic activity instances", tags = { "History" }, nickname = "listHistoricActivityInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiResponses(value = { @ApiResponse(code = 200, message = "Indicates that historic activity instances could be queried."), @ApiResponse(code = 400, message = "Indicates an parameter was passed in the wrong format. The status-message contains additional information.") }) diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricProcessInstanceCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricProcessInstanceCollectionResource.java index fdc72e0f21c..50f2f5abd33 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricProcessInstanceCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricProcessInstanceCollectionResource.java @@ -46,7 +46,7 @@ @Api(tags = { "History Process" }, authorizations = { @Authorization(value = "basicAuth") }) public class HistoricProcessInstanceCollectionResource extends HistoricProcessInstanceBaseResource { - @ApiOperation(value = "List of historic process instances", tags = { "History Process" }, nickname = "listHistoricProcessInstances") + @ApiOperation(value = "List of historic process instances", tags = { "History Process" }, nickname = "listHistoricProcessInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "processInstanceId", dataType = "string", value = "An id of the historic process instance.", paramType = "query"), @ApiImplicitParam(name = "processInstanceName", dataType = "string", value = "A name of the historic process instance.", paramType = "query"), @@ -83,7 +83,7 @@ public class HistoricProcessInstanceCollectionResource extends HistoricProcessIn @ApiImplicitParam(name = "startedBefore", dataType = "string", format="date-time", value = "Return only historic process instances that were started before this date.", paramType = "query"), @ApiImplicitParam(name = "startedBy", dataType = "string", value = "Return only historic process instances that were started by this user.", paramType = "query"), @ApiImplicitParam(name = "includeProcessVariables", dataType = "boolean", value = "An indication if the historic process instance variables should be returned as well.", paramType = "query"), - @ApiImplicitParam(name = "includeProcessVariablesName", dataType = "string", value = "Indication to include process variables with the given names in the result.", paramType = "query"), + @ApiImplicitParam(name = "includeProcessVariablesNames", dataType = "string", value = "Indication to include process variables with the given names (comma-separated) in the result.", paramType = "query"), @ApiImplicitParam(name = "callbackId", dataType = "string", value = "Only return instances with the given callbackId.", paramType = "query"), @ApiImplicitParam(name = "callbackIds", dataType = "string", value = "Only return instances with the given callbackIds.", paramType = "query"), @ApiImplicitParam(name = "callbackType", dataType = "string", value = "Only return instances with the given callbackType.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricTaskInstanceCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricTaskInstanceCollectionResource.java index c07606a322a..396377670f8 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricTaskInstanceCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricTaskInstanceCollectionResource.java @@ -38,7 +38,7 @@ @Api(tags = { "History Task" }, authorizations = { @Authorization(value = "basicAuth") }) public class HistoricTaskInstanceCollectionResource extends HistoricTaskInstanceBaseResource { - @ApiOperation(value = "List historic task instances", tags = { "History Task" }, nickname = "listHistoricTaskInstances") + @ApiOperation(value = "List historic task instances", tags = { "History Task" }, nickname = "listHistoricTaskInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "taskId", dataType = "string", value = "An id of the historic task instance.", paramType = "query"), @ApiImplicitParam(name = "processInstanceId", dataType = "string", value = "The process instance id of the historic task instance.", paramType = "query"), @@ -71,7 +71,7 @@ public class HistoricTaskInstanceCollectionResource extends HistoricTaskInstance @ApiImplicitParam(name = "taskOwnerLike", dataType = "string", value = "The owner with like operator for the historic task instance.", paramType = "query"), @ApiImplicitParam(name = "taskInvolvedUser", dataType = "string", value = "An involved user of the historic task instance", paramType = "query"), @ApiImplicitParam(name = "taskCandidateGroup", dataType = "string", value = "Only return tasks that can be claimed by a user in the given group.", paramType = "query"), - @ApiImplicitParam(name = "taskIgnoreAssignee", dataType = "boolean", value = "Allows to select a task (typically in combination with a candidateGroup) and ignore the assignee (as claimed tasks will not be returned when using candidateGroup)"), + @ApiImplicitParam(name = "ignoreTaskAssignee", dataType = "boolean", value = "Allows to select a task (typically in combination with a candidateGroup) and ignore the assignee (as claimed tasks will not be returned when using candidateGroup)", paramType = "query"), @ApiImplicitParam(name = "taskPriority", dataType = "string", value = "The priority of the historic task instance.", paramType = "query"), @ApiImplicitParam(name = "finished", dataType = "boolean", value = "Indication if the historic task instance is finished.", paramType = "query"), @ApiImplicitParam(name = "processFinished", dataType = "boolean", value = "Indication if the process instance of the historic task instance is finished.", paramType = "query"), @@ -265,6 +265,10 @@ public DataResponse getHistoricProcessInstances(@A queryRequest.setDueDateBefore(RequestUtil.getDate(allRequestParams, "dueDateBefore")); } + if (allRequestParams.containsKey("withoutDueDate") && Boolean.parseBoolean(allRequestParams.get("withoutDueDate"))) { + queryRequest.setWithoutDueDate(Boolean.TRUE); + } + if (allRequestParams.get("taskCreatedOn") != null) { queryRequest.setTaskCreatedOn(RequestUtil.getDate(allRequestParams, "taskCreatedOn")); } diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricVariableInstanceCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricVariableInstanceCollectionResource.java index 88543ce51b3..b727a72cdfa 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricVariableInstanceCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/history/HistoricVariableInstanceCollectionResource.java @@ -36,7 +36,7 @@ @Api(tags = { "History" }, authorizations = { @Authorization(value = "basicAuth") }) public class HistoricVariableInstanceCollectionResource extends HistoricVariableInstanceBaseResource { - @ApiOperation(value = "List of historic variable instances", tags = { "History" }, nickname = "listHistoricVariableInstances") + @ApiOperation(value = "List of historic variable instances", tags = { "History" }, nickname = "listHistoricVariableInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "processInstanceId", dataType = "string", value = "The process instance id of the historic variable instance.", paramType = "query"), @ApiImplicitParam(name = "taskId", dataType = "string", value = "The task id of the historic variable instance.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/identity/GroupCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/identity/GroupCollectionResource.java index 8b0e46c8c20..bf775f813ec 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/identity/GroupCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/identity/GroupCollectionResource.java @@ -70,14 +70,13 @@ public class GroupCollectionResource { @Autowired(required=false) protected BpmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List groups", nickname="listGroups", tags = { "Groups" }, produces = "application/json") + @ApiOperation(value = "List groups", nickname="listGroups", tags = { "Groups" }, produces = "application/json", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return group with the given id", paramType = "query"), @ApiImplicitParam(name = "name", dataType = "string", value = "Only return groups with the given name", paramType = "query"), @ApiImplicitParam(name = "type", dataType = "string", value = "Only return groups with the given type", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return groups with a name like the given value. Use % as wildcard-character.", paramType = "query"), @ApiImplicitParam(name = "member", dataType = "string", value = "Only return groups which have a member with the given username.", paramType = "query"), - @ApiImplicitParam(name = "potentialStarter", dataType = "string", value = "Only return groups which members are potential starters for a process-definition with the given id.", paramType = "query"), @ApiImplicitParam(name = "sort", dataType = "string", value = "Property to sort on, to be used together with the order.", allowableValues = "id,name,type", paramType = "query"), @ApiImplicitParam(name = "order", dataType = "string", value = "The sort order, either 'asc' or 'desc'. Defaults to 'asc'.", paramType = "query"), @ApiImplicitParam(name = "start", dataType = "integer", value = "Index of the first row to fetch. Defaults to 0.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/identity/UserCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/identity/UserCollectionResource.java index a6e6c905fbb..e073df8ff78 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/identity/UserCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/identity/UserCollectionResource.java @@ -73,7 +73,7 @@ public class UserCollectionResource { @Autowired(required=false) protected BpmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List users", nickname = "listUsers", tags = { "Users" }) + @ApiOperation(value = "List users", nickname = "listUsers", tags = { "Users" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return group with the given id", paramType = "query"), @ApiImplicitParam(name = "firstName", dataType = "string", value = "Only return users with the given firstname", paramType = "query"), @@ -86,7 +86,6 @@ public class UserCollectionResource { @ApiImplicitParam(name = "emailLike", dataType = "string", value = "Only return users with an email like the given value. Use % as wildcard-character.", paramType = "query"), @ApiImplicitParam(name = "memberOfGroup", dataType = "string", value = "Only return users which are a member of the given group.", paramType = "query"), @ApiImplicitParam(name = "tenantId", dataType = "string", value = "Only return users which are a members of the given tenant.", paramType = "query"), - @ApiImplicitParam(name = "potentialStarter", dataType = "string", value = "Only return users which members are potential starters for a process-definition with the given id.", paramType = "query"), @ApiImplicitParam(name = "sort", dataType = "string", value = "Property to sort on, to be used together with the order.", allowableValues = "id,firstName,lastname,email,displayName", paramType = "query"), @ApiImplicitParam(name = "order", dataType = "string", value = "The sort order, either 'asc' or 'desc'. Defaults to 'asc'.", paramType = "query"), @ApiImplicitParam(name = "start", dataType = "integer", value = "Index of the first row to fetch. Defaults to 0.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/BatchCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/BatchCollectionResource.java index d7aa7e078ae..2e7b5a9dac4 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/BatchCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/BatchCollectionResource.java @@ -51,7 +51,7 @@ public class BatchCollectionResource { protected BpmnRestApiInterceptor restApiInterceptor; // Fixme documentation & real parameters - @ApiOperation(value = "List batches", tags = { "Batches" }, nickname = "listBatches") + @ApiOperation(value = "List batches", tags = { "Batches" }, nickname = "listBatches", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return batch with the given id", paramType = "query"), @ApiImplicitParam(name = "batchType", dataType = "string", value = "Only return batches for the given type", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/DeadLetterJobCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/DeadLetterJobCollectionResource.java index 2aafc633b9b..2ce38a6d059 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/DeadLetterJobCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/DeadLetterJobCollectionResource.java @@ -55,7 +55,7 @@ public class DeadLetterJobCollectionResource { @Autowired(required=false) protected BpmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List deadletter jobs", tags = { "Jobs" }, nickname = "listDeadLetterJobs") + @ApiOperation(value = "List deadletter jobs", tags = { "Jobs" }, nickname = "listDeadLetterJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return job with the given id", paramType = "query"), @ApiImplicitParam(name = "processInstanceId", dataType = "string", value = "Only return jobs part of a process with the given id", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/HistoryJobCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/HistoryJobCollectionResource.java index 4e8538c2e77..8cca580aad0 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/HistoryJobCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/HistoryJobCollectionResource.java @@ -53,7 +53,7 @@ public class HistoryJobCollectionResource { @Autowired(required=false) protected BpmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List history jobs", tags = { "Jobs" }, nickname = "listDeadLetterJobs") + @ApiOperation(value = "List history jobs", tags = { "Jobs" }, nickname = "listDeadLetterJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return the job with the given id", paramType = "query"), @ApiImplicitParam(name = "withException", dataType = "boolean", value = "If true, only return jobs for which an exception occurred while executing it. If false, this parameter is ignored.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/JobCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/JobCollectionResource.java index af5a3a79f7b..e3ff6b21360 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/JobCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/JobCollectionResource.java @@ -73,7 +73,7 @@ public class JobCollectionResource { protected ProcessEngineConfigurationImpl processEngineConfiguration; // Fixme documentation & real parameters - @ApiOperation(value = "List jobs", tags = { "Jobs" }, nickname = "listJobs") + @ApiOperation(value = "List jobs", tags = { "Jobs" }, nickname = "listJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return job with the given id", paramType = "query"), @ApiImplicitParam(name = "processInstanceId", dataType = "string", value = "Only return jobs part of a process with the given id", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/SuspendedJobCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/SuspendedJobCollectionResource.java index 6773233283c..6de2f01c365 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/SuspendedJobCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/SuspendedJobCollectionResource.java @@ -56,7 +56,7 @@ public class SuspendedJobCollectionResource { protected BpmnRestApiInterceptor restApiInterceptor; // Fixme documentation & real parameters - @ApiOperation(value = "List suspended jobs", tags = { "Jobs" }, nickname = "listSuspendedJobs") + @ApiOperation(value = "List suspended jobs", tags = { "Jobs" }, nickname = "listSuspendedJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return job with the given id", paramType = "query"), @ApiImplicitParam(name = "processInstanceId", dataType = "string", value = "Only return jobs part of a process with the given id", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/TimerJobCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/TimerJobCollectionResource.java index 8bc427248b9..73bbe431143 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/TimerJobCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/management/TimerJobCollectionResource.java @@ -56,7 +56,7 @@ public class TimerJobCollectionResource { protected BpmnRestApiInterceptor restApiInterceptor; // Fixme documentation & real parameters - @ApiOperation(value = "List timer jobs", tags = { "Jobs" }, nickname = "listTimerJobs") + @ApiOperation(value = "List timer jobs", tags = { "Jobs" }, nickname = "listTimerJobs", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return job with the given id", paramType = "query"), @ApiImplicitParam(name = "processInstanceId", dataType = "string", value = "Only return jobs part of a process with the given id", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/DeploymentCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/DeploymentCollectionResource.java index 17d83c853e1..9382dbaedb6 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/DeploymentCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/DeploymentCollectionResource.java @@ -84,7 +84,7 @@ public class DeploymentCollectionResource { @Autowired(required=false) protected BpmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List Deployments", tags = { "Deployment" }, nickname="listDeployments") + @ApiOperation(value = "List Deployments", tags = { "Deployment" }, nickname="listDeployments", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "name", dataType = "string", value = "Only return deployments with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return deployments with a name like the given name.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ModelCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ModelCollectionResource.java index 708dc941cf2..4652082576a 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ModelCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ModelCollectionResource.java @@ -60,7 +60,7 @@ public class ModelCollectionResource extends BaseModelResource { allowedSortProperties.put("tenantId", ModelQueryProperty.MODEL_TENANT_ID); } - @ApiOperation(value = "List models", nickname= "listModels", tags = { "Models" }) + @ApiOperation(value = "List models", nickname= "listModels", tags = { "Models" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return models with the given version.", paramType = "query"), @ApiImplicitParam(name = "category", dataType = "string", value = "Only return models with the given category.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ProcessDefinitionCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ProcessDefinitionCollectionResource.java index c32c6ed90da..d9a9ba1e9f8 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ProcessDefinitionCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/repository/ProcessDefinitionCollectionResource.java @@ -67,14 +67,14 @@ public class ProcessDefinitionCollectionResource { @Autowired(required=false) protected BpmnRestApiInterceptor restApiInterceptor; - @ApiOperation(value = "List of process definitions", tags = { "Process Definitions" }, nickname = "listProcessDefinitions") + @ApiOperation(value = "List of process definitions", tags = { "Process Definitions" }, nickname = "listProcessDefinitions", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "version", dataType = "integer", value = "Only return process definitions with the given version.", paramType = "query"), @ApiImplicitParam(name = "name", dataType = "string", value = "Only return process definitions with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return process definitions with a name like the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLikeIgnoreCase", dataType = "string", value = "Only return process definitions with a name like the given name ignoring case.", paramType = "query"), @ApiImplicitParam(name = "key", dataType = "string", value = "Only return process definitions with the given key.", paramType = "query"), - @ApiImplicitParam(name = "keyLike", dataType = "string", value = "Only return process definitions with a name like the given key.", paramType = "query"), + @ApiImplicitParam(name = "keyLike", dataType = "string", value = "Only return process definitions with a key like the given key.", paramType = "query"), @ApiImplicitParam(name = "resourceName", dataType = "string", value = "Only return process definitions with the given resource name.", paramType = "query"), @ApiImplicitParam(name = "resourceNameLike", dataType = "string", value = "Only return process definitions with a name like the given resource name.", paramType = "query"), @ApiImplicitParam(name = "category", dataType = "string", value = "Only return process definitions with the given category.", paramType = "query"), @@ -82,7 +82,7 @@ public class ProcessDefinitionCollectionResource { @ApiImplicitParam(name = "categoryNotEquals", dataType = "string", value = "Only return process definitions which do not have the given category.", paramType = "query"), @ApiImplicitParam(name = "deploymentId", dataType = "string", value = "Only return process definitions which are part of a deployment with the given deployment id.", paramType = "query"), @ApiImplicitParam(name = "parentDeploymentId", dataType = "string", value = "Only return process definitions which are part of a deployment with the given parent deployment id.", paramType = "query"), - @ApiImplicitParam(name = "startableByUser", dataType = "string", value = "Only return process definitions which are part of a deployment with the given id.", paramType = "query"), + @ApiImplicitParam(name = "startableByUser", dataType = "string", value = "Only return process definitions which can be started by the user with the given id.", paramType = "query"), @ApiImplicitParam(name = "latest", dataType = "boolean", value = "Only return the latest process definition versions. Can only be used together with key and keyLike parameters, using any other parameter will result in a 400-response.", paramType = "query"), @ApiImplicitParam(name = "suspended", dataType = "boolean", value = "If true, only returns process definitions which are suspended. If false, only active process definitions (which are not suspended) are returned.", paramType = "query"), @ApiImplicitParam(name = "sort", dataType = "string", value = "Property to sort on, to be used together with the order.", allowableValues = "name,id,key,category,deploymentId,version", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/VariableInstanceCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/VariableInstanceCollectionResource.java index ce35471d1a5..4f9b0bcf759 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/VariableInstanceCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/VariableInstanceCollectionResource.java @@ -36,7 +36,7 @@ @Api(tags = { "Runtime" }, authorizations = { @Authorization(value = "basicAuth") }) public class VariableInstanceCollectionResource extends VariableInstanceBaseResource { - @ApiOperation(value = "List of variable instances", tags = { "History" }, nickname = "listVariableInstances") + @ApiOperation(value = "List of variable instances", tags = { "History" }, nickname = "listVariableInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "processInstanceId", dataType = "string", value = "The process instance id of the variable instance.", paramType = "query"), @ApiImplicitParam(name = "taskId", dataType = "string", value = "The task id of the variable instance.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ActivityInstanceCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ActivityInstanceCollectionResource.java index edf32a85a96..46474817b54 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ActivityInstanceCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ActivityInstanceCollectionResource.java @@ -37,7 +37,7 @@ @RestController public class ActivityInstanceCollectionResource extends ActivityInstanceBaseResource { - @ApiOperation(value = "List activity instances", tags = { "History" }, nickname = "listActivityInstances") + @ApiOperation(value = "List activity instances", tags = { "History" }, nickname = "listActivityInstances", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiResponses(value = { @ApiResponse(code = 200, message = "Indicates that activity instances could be queried."), @ApiResponse(code = 400, message = "Indicates an parameter was passed in the wrong format. The status-message contains additional information.") }) diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ExecutionCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ExecutionCollectionResource.java index 014d852181b..d787f73010f 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ExecutionCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ExecutionCollectionResource.java @@ -45,7 +45,7 @@ public class ExecutionCollectionResource extends ExecutionBaseResource { // FIXME naming issue ? - @ApiOperation(value = "List of executions", tags = { "Executions" }, nickname = "listExecutions") + @ApiOperation(value = "List of executions", tags = { "Executions" }, nickname = "listExecutions", notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return models with the given version.", paramType = "query"), @ApiImplicitParam(name = "activityId", dataType = "string", value = "Only return executions with the given activity id.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ProcessInstanceCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ProcessInstanceCollectionResource.java index 0f100645627..3d836661d0f 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ProcessInstanceCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/process/ProcessInstanceCollectionResource.java @@ -66,7 +66,7 @@ public class ProcessInstanceCollectionResource extends BaseProcessInstanceResour @Autowired protected RepositoryService repositoryService; - @ApiOperation(value = "List process instances", nickname ="listProcessInstances", tags = { "Process Instances" }) + @ApiOperation(value = "List process instances", nickname ="listProcessInstances", tags = { "Process Instances" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "id", dataType = "string", value = "Only return process instances with the given version.", paramType = "query"), @ApiImplicitParam(name = "name", dataType = "string", value = "Only return process instances with the given name.", paramType = "query"), @@ -102,7 +102,7 @@ public class ProcessInstanceCollectionResource extends BaseProcessInstanceResour @ApiImplicitParam(name = "subProcessInstanceId", dataType = "string", value = "Only return process instances which have the given sub process-instance id (for processes started as a call-activity).", paramType = "query"), @ApiImplicitParam(name = "excludeSubprocesses", dataType = "boolean", value = "Return only process instances which are not sub processes.", paramType = "query"), @ApiImplicitParam(name = "includeProcessVariables", dataType = "boolean", value = "Indication to include process variables in the result.", paramType = "query"), - @ApiImplicitParam(name = "includeProcessVariablesName", dataType = "string", value = "Indication to include process variables with the given names in the result.", paramType = "query"), + @ApiImplicitParam(name = "includeProcessVariablesNames", dataType = "string", value = "Indication to include process variables with the given names (comma-separated) in the result.", paramType = "query"), @ApiImplicitParam(name = "callbackId", dataType = "string", value = "Only return process instances with the given callbackId.", paramType = "query"), @ApiImplicitParam(name = "callbackIds", dataType = "string", value = "Only return process instances with the given callbackIds.", paramType = "query"), @ApiImplicitParam(name = "callbackType", dataType = "string", value = "Only return process instances with the given callbackType.", paramType = "query"), diff --git a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/task/TaskCollectionResource.java b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/task/TaskCollectionResource.java index d54f1031050..c6b276bf1e9 100644 --- a/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/task/TaskCollectionResource.java +++ b/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/task/TaskCollectionResource.java @@ -54,10 +54,10 @@ @Api(tags = { "Tasks" }, authorizations = { @Authorization(value = "basicAuth") }) public class TaskCollectionResource extends TaskBaseResource { - @ApiOperation(value = "List of tasks", nickname="listTasks", tags = { "Tasks" }) + @ApiOperation(value = "List of tasks", nickname="listTasks", tags = { "Tasks" }, notes = "For all 'Like' parameters the '%' wildcard character must be URL-encoded as '%25' (for example '?nameLike=acme%25' to match names starting with 'acme').") @ApiImplicitParams({ @ApiImplicitParam(name = "taskId", dataType = "string", value = "Only return tasks with the given id.", paramType = "query"), - @ApiImplicitParam(name = "name", dataType = "string", value = "Only return tasks with the given version.", paramType = "query"), + @ApiImplicitParam(name = "name", dataType = "string", value = "Only return tasks with the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLike", dataType = "string", value = "Only return tasks with a name like the given name.", paramType = "query"), @ApiImplicitParam(name = "nameLikeIgnoreCase", dataType = "string", value = "Only return tasks with a name like the given name ignoring case.", paramType = "query"), @ApiImplicitParam(name = "description", dataType = "string", value = "Only return tasks with the given description.", paramType = "query"), @@ -294,6 +294,10 @@ public DataResponse getTasks(@ApiParam(hidden = true) @RequestPara request.setDueAfter(RequestUtil.getDate(requestParams, "dueAfter")); } + if (requestParams.containsKey("withoutDueDate") && Boolean.parseBoolean(requestParams.get("withoutDueDate"))) { + request.setWithoutDueDate(Boolean.TRUE); + } + if (requestParams.containsKey("active")) { request.setActive(Boolean.valueOf(requestParams.get("active"))); } diff --git a/modules/flowable-rest/src/test/java/org/flowable/rest/service/api/history/HistoricTaskInstanceCollectionResourceTest.java b/modules/flowable-rest/src/test/java/org/flowable/rest/service/api/history/HistoricTaskInstanceCollectionResourceTest.java index e856c1b23bd..e70d729ef4a 100644 --- a/modules/flowable-rest/src/test/java/org/flowable/rest/service/api/history/HistoricTaskInstanceCollectionResourceTest.java +++ b/modules/flowable-rest/src/test/java/org/flowable/rest/service/api/history/HistoricTaskInstanceCollectionResourceTest.java @@ -137,6 +137,12 @@ public void testQueryTaskInstances() throws Exception { assertResultsPresentInDataResponse(url + "?dueDateBefore=" + LocalDate.of(2013, Month.MAY, 1).atStartOfDay(ZoneId.systemDefault()).toInstant().toString(), 1, task.getId()); + // Without due date — task has a due date, task1 (completed) and task2 do not + assertResultsPresentInDataResponse(url + "?withoutDueDate=true", 2, task1.getId(), task2.getId()); + + // withoutDueDate=false must be ignored + assertResultsPresentInDataResponse(url + "?withoutDueDate=false", 3, task.getId(), task1.getId(), task2.getId()); + assertResultsPresentInDataResponse(url + "?taskCreatedOn=" + created.toInstant().toString(), 1, task1.getId()); created.set(Calendar.YEAR, 2002); diff --git a/modules/flowable-rest/src/test/java/org/flowable/rest/service/api/runtime/TaskCollectionResourceTest.java b/modules/flowable-rest/src/test/java/org/flowable/rest/service/api/runtime/TaskCollectionResourceTest.java index ed395dd4456..77b2a02c78f 100644 --- a/modules/flowable-rest/src/test/java/org/flowable/rest/service/api/runtime/TaskCollectionResourceTest.java +++ b/modules/flowable-rest/src/test/java/org/flowable/rest/service/api/runtime/TaskCollectionResourceTest.java @@ -490,6 +490,20 @@ public void testGetTasksDateInfo() throws Exception { url = RestUrls.createRelativeResourceUrl(RestUrls.URL_TASK_COLLECTION) + "?dueBefore=" + getISODateString(inBetweenTaskCreation.getTime()); assertResultsPresentInDataResponse(url, preparedAdhocTask.getId()); + // Without due date filtering — both prepared tasks have a due date, so no results yet + url = RestUrls.createRelativeResourceUrl(RestUrls.URL_TASK_COLLECTION) + "?withoutDueDate=true"; + assertResultsPresentInDataResponse(url); + + // Clear the due date on the process task and verify it now matches + Task processTaskToUpdate = taskService.createTaskQuery().taskId(preparedProcessTask.getId()).singleResult(); + processTaskToUpdate.setDueDate(null); + taskService.saveTask(processTaskToUpdate); + assertResultsPresentInDataResponse(url, preparedProcessTask.getId()); + + // withoutDueDate=false must be ignored (matches the documented behavior) + url = RestUrls.createRelativeResourceUrl(RestUrls.URL_TASK_COLLECTION) + "?withoutDueDate=false"; + assertResultsPresentInDataResponse(url, preparedAdhocTask.getId(), preparedProcessTask.getId()); + } finally { // Clean adhoc-tasks even if test fails List tasks = taskService.createTaskQuery().list();