Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ private static TasklistClient.TaskSearch toTaskSearch(TaskSearch search) {
toSearch(SearchType.AFTER_OR_EQUAL, search.getPagination()),
toSearch(SearchType.BEFORE, search.getPagination()),
toSearch(SearchType.BEFORE_OR_EQUAL, search.getPagination()),
search.getAfter(),
search.getBefore(),
mapIfPresent(search.getIncludeVariables(), CamundaTaskListClient::toIncludeVariable),
toImplementation(search.getImplementation()),
toPriority(search.getPriority()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ enum TaskState {
COMPLETED,
CANCELED,
FAILED,
ASSIGNING,
UPDATING,
COMPLETING,
CANCELING,
UNKNOWN_ENUM_VALUE
}

Expand Down Expand Up @@ -94,7 +98,6 @@ record TaskFromSearch(
String completionDate,
String assignee,
TaskState taskState,
List<String> sortValues,
Boolean isFirst,
String formKey,
String formId,
Expand Down Expand Up @@ -154,6 +157,8 @@ record TaskSearch(
List<String> searchAfterOrEqual,
List<String> searchBefore,
List<String> searchBeforeOrEqual,
String after,
String before,
List<IncludeVariable> includeVariables,
Implementation implementation,
Priority priority) {
Expand All @@ -172,7 +177,8 @@ public enum Field {
creationTime,
followUpDate,
dueDate,
priority
priority,
name
}

public enum Order {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ private static FieldEnum fromField(Field field) {
case creationTime -> FieldEnum.CREATION_TIME;
case followUpDate -> FieldEnum.FOLLOW_UP_DATE;
case completionTime -> FieldEnum.COMPLETION_TIME;
case name -> null;
};
}

Expand Down Expand Up @@ -269,7 +270,8 @@ private static StateEnum fromState(TaskState state) {
case FAILED -> StateEnum.FAILED;
case CANCELED -> StateEnum.CANCELED;
case COMPLETED -> StateEnum.COMPLETED;
case UNKNOWN_ENUM_VALUE -> null;
case ASSIGNING, UPDATING, COMPLETING, CANCELING, UNKNOWN_ENUM_VALUE ->
throw new IllegalArgumentException("Task state '" + state + "' does not exist in V1 API");
};
}

Expand All @@ -283,7 +285,6 @@ private static TaskFromSearch toTaskFromSearch(TaskSearchResponse taskSearchResp
taskSearchResponse.getCompletionDate(),
taskSearchResponse.getAssignee(),
toTaskState(taskSearchResponse.getTaskState()),
taskSearchResponse.getSortValues(),
taskSearchResponse.getIsFirst(),
taskSearchResponse.getFormKey(),
taskSearchResponse.getFormId(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@
import io.camunda.client.api.search.filter.UserTaskFilter;
import io.camunda.client.api.search.filter.UserTaskVariableFilter;
import io.camunda.client.api.search.request.SearchRequestPage;
import io.camunda.client.api.search.response.Form;
import io.camunda.client.api.search.response.SearchResponse;
import io.camunda.client.api.search.response.UserTask;
import io.camunda.client.api.search.response.Variable;
import io.camunda.client.api.search.sort.UserTaskSort;
import io.camunda.tasklist.TasklistClient.TaskSearch.Sort;
import io.camunda.tasklist.TasklistClient.TaskSearch.TaskVariable;
import io.camunda.tasklist.exception.CompatibilityException;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -68,9 +69,8 @@ private static Consumer<UserTaskVariableFilter> fromVariableSearchToFilter(
};
}

private static TaskFromSearch toTaskFromSearch(UserTask userTask, List<Object> sort) {
private static TaskFromSearch toTaskFromSearch(UserTask userTask) {
String processName = null; // can be found in process definition
List<String> sortValues = sort != null ? sort.stream().map(Object::toString).toList() : null;
Boolean isFirst = null;
Boolean isFormEmbedded = null;
List<VariableFromSearch> variables = null;
Expand All @@ -84,7 +84,6 @@ private static TaskFromSearch toTaskFromSearch(UserTask userTask, List<Object> s
userTask.getCompletionDate(),
userTask.getAssignee(),
toTaskState(userTask.getState()),
sortValues,
isFirst,
String.valueOf(userTask.getFormKey()),
userTask.getExternalFormReference(),
Expand Down Expand Up @@ -137,20 +136,25 @@ private static Variable toVariable(io.camunda.client.api.search.response.Variabl
variable.getTenantId());
}

private static TasklistClient.TaskState toTaskState(UserTaskState state) {
private static TaskState toTaskState(UserTaskState state) {
if (state == null) {
return null;
}
return switch (state) {
case COMPLETED -> TasklistClient.TaskState.COMPLETED;
case FAILED -> TasklistClient.TaskState.FAILED;
case CREATED -> TasklistClient.TaskState.CREATED;
case CANCELED -> TasklistClient.TaskState.CANCELED;
case UNKNOWN_ENUM_VALUE -> TasklistClient.TaskState.UNKNOWN_ENUM_VALUE;
case COMPLETED -> TaskState.COMPLETED;
case FAILED -> TaskState.FAILED;
case CREATING -> null;
case CREATED -> TaskState.CREATED;
case CANCELED -> TaskState.CANCELED;
case UNKNOWN_ENUM_VALUE -> TaskState.UNKNOWN_ENUM_VALUE;
case ASSIGNING -> TaskState.ASSIGNING;
case UPDATING -> TaskState.UPDATING;
case COMPLETING -> TaskState.COMPLETING;
case CANCELING -> TaskState.CANCELING;
};
}

private static UserTaskState toTaskState(TasklistClient.TaskState state) {
private static UserTaskState toTaskState(TaskState state) {
if (state == null) {
return null;
}
Expand All @@ -159,6 +163,10 @@ private static UserTaskState toTaskState(TasklistClient.TaskState state) {
case FAILED -> UserTaskState.FAILED;
case CREATED -> UserTaskState.CREATED;
case CANCELED -> UserTaskState.CANCELED;
case ASSIGNING -> UserTaskState.ASSIGNING;
case UPDATING -> UserTaskState.UPDATING;
case COMPLETING -> UserTaskState.COMPLETING;
case CANCELING -> UserTaskState.CANCELING;
case UNKNOWN_ENUM_VALUE -> UserTaskState.UNKNOWN_ENUM_VALUE;
};
}
Expand Down Expand Up @@ -278,16 +286,22 @@ private static Consumer<SearchRequestPage> fromTaskSearchToPage(TaskSearch taskS
page.limit(taskSearch.pageSize());
}
if (taskSearch.searchAfter() != null) {
page.searchAfter(taskSearch.searchAfter().stream().map(Object.class::cast).toList());
LOG.warn("searchAfter is not supported, please use after");
}
if (taskSearch.searchBefore() != null) {
page.searchBefore(taskSearch.searchBefore().stream().map(Object.class::cast).toList());
LOG.warn("searchBefore is not supported, please use before");
}
if (taskSearch.searchAfterOrEqual() != null) {
LOG.warn("searchAfterOrEqual is not supported, please use searchAfter");
LOG.warn("searchAfterOrEqual is not supported, please use after");
}
if (taskSearch.searchBeforeOrEqual() != null) {
LOG.warn("searchBeforeOrEqual is not supported, please use searchBefore");
LOG.warn("searchBeforeOrEqual is not supported, please use before");
}
if (taskSearch.before() != null) {
page.before(taskSearch.before());
}
if (taskSearch.after() != null) {
page.after(taskSearch.after());
}
};
}
Expand Down Expand Up @@ -359,18 +373,7 @@ public List<TaskFromSearch> searchTasks(TaskSearch taskSearch) {
taskSearch, camundaClient.getConfiguration().getJsonMapper()))
.send()
.join();
List<UserTask> items = searchResponse.items();
List<TaskFromSearch> result = new ArrayList<>();
for (UserTask item : items) {
if (isFirst(item, items)) {
result.add(toTaskFromSearch(item, searchResponse.page().firstSortValues()));
} else if (isLast(item, items)) {
result.add(toTaskFromSearch(item, searchResponse.page().lastSortValues()));
} else {
result.add(toTaskFromSearch(item, null));
}
}
return result;
return searchResponse.items().stream().map(TasklistClientV2::toTaskFromSearch).toList();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,24 @@ public class TaskSearch implements Cloneable {
private Pagination pagination;
private Implementation implementation;
private Priority priority;
private String before;
private String after;

public String getBefore() {
return before;
}

public void setBefore(String before) {
this.before = before;
}

public String getAfter() {
return after;
}

public void setAfter(String after) {
this.after = after;
}

public List<String> getAssignees() {
return assignees;
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-bom</artifactId>
<version>8.8.0-alpha5</version>
<version>8.8.0-alpha7-rc1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down