66import io .camunda .client .api .search .filter .UserTaskFilter ;
77import io .camunda .client .api .search .filter .UserTaskVariableFilter ;
88import io .camunda .client .api .search .request .SearchRequestPage ;
9+ import io .camunda .client .api .search .response .Form ;
910import io .camunda .client .api .search .response .SearchResponse ;
1011import io .camunda .client .api .search .response .UserTask ;
12+ import io .camunda .client .api .search .response .Variable ;
1113import io .camunda .client .api .search .sort .UserTaskSort ;
1214import io .camunda .tasklist .TasklistClient .TaskSearch .Sort ;
1315import io .camunda .tasklist .TasklistClient .TaskSearch .TaskVariable ;
1416import io .camunda .tasklist .exception .CompatibilityException ;
1517import java .time .OffsetDateTime ;
16- import java .util .ArrayList ;
1718import java .util .HashMap ;
1819import java .util .List ;
1920import java .util .Map ;
@@ -68,9 +69,8 @@ private static Consumer<UserTaskVariableFilter> fromVariableSearchToFilter(
6869 };
6970 }
7071
71- private static TaskFromSearch toTaskFromSearch (UserTask userTask , List < Object > sort ) {
72+ private static TaskFromSearch toTaskFromSearch (UserTask userTask ) {
7273 String processName = null ; // can be found in process definition
73- List <String > sortValues = sort != null ? sort .stream ().map (Object ::toString ).toList () : null ;
7474 Boolean isFirst = null ;
7575 Boolean isFormEmbedded = null ;
7676 List <VariableFromSearch > variables = null ;
@@ -84,7 +84,6 @@ private static TaskFromSearch toTaskFromSearch(UserTask userTask, List<Object> s
8484 userTask .getCompletionDate (),
8585 userTask .getAssignee (),
8686 toTaskState (userTask .getState ()),
87- sortValues ,
8887 isFirst ,
8988 String .valueOf (userTask .getFormKey ()),
9089 userTask .getExternalFormReference (),
@@ -137,20 +136,25 @@ private static Variable toVariable(io.camunda.client.api.search.response.Variabl
137136 variable .getTenantId ());
138137 }
139138
140- private static TasklistClient . TaskState toTaskState (UserTaskState state ) {
139+ private static TaskState toTaskState (UserTaskState state ) {
141140 if (state == null ) {
142141 return null ;
143142 }
144143 return switch (state ) {
145- case COMPLETED -> TasklistClient .TaskState .COMPLETED ;
146- case FAILED -> TasklistClient .TaskState .FAILED ;
147- case CREATED -> TasklistClient .TaskState .CREATED ;
148- case CANCELED -> TasklistClient .TaskState .CANCELED ;
149- case UNKNOWN_ENUM_VALUE -> TasklistClient .TaskState .UNKNOWN_ENUM_VALUE ;
144+ case COMPLETED -> TaskState .COMPLETED ;
145+ case FAILED -> TaskState .FAILED ;
146+ case CREATING -> null ;
147+ case CREATED -> TaskState .CREATED ;
148+ case CANCELED -> TaskState .CANCELED ;
149+ case UNKNOWN_ENUM_VALUE -> TaskState .UNKNOWN_ENUM_VALUE ;
150+ case ASSIGNING -> TaskState .ASSIGNING ;
151+ case UPDATING -> TaskState .UPDATING ;
152+ case COMPLETING -> TaskState .COMPLETING ;
153+ case CANCELING -> TaskState .CANCELING ;
150154 };
151155 }
152156
153- private static UserTaskState toTaskState (TasklistClient . TaskState state ) {
157+ private static UserTaskState toTaskState (TaskState state ) {
154158 if (state == null ) {
155159 return null ;
156160 }
@@ -159,6 +163,10 @@ private static UserTaskState toTaskState(TasklistClient.TaskState state) {
159163 case FAILED -> UserTaskState .FAILED ;
160164 case CREATED -> UserTaskState .CREATED ;
161165 case CANCELED -> UserTaskState .CANCELED ;
166+ case ASSIGNING -> UserTaskState .ASSIGNING ;
167+ case UPDATING -> UserTaskState .UPDATING ;
168+ case COMPLETING -> UserTaskState .COMPLETING ;
169+ case CANCELING -> UserTaskState .CANCELING ;
162170 case UNKNOWN_ENUM_VALUE -> UserTaskState .UNKNOWN_ENUM_VALUE ;
163171 };
164172 }
@@ -278,16 +286,22 @@ private static Consumer<SearchRequestPage> fromTaskSearchToPage(TaskSearch taskS
278286 page .limit (taskSearch .pageSize ());
279287 }
280288 if (taskSearch .searchAfter () != null ) {
281- page . searchAfter ( taskSearch . searchAfter (). stream (). map ( Object . class :: cast ). toList () );
289+ LOG . warn ( " searchAfter is not supported, please use after" );
282290 }
283291 if (taskSearch .searchBefore () != null ) {
284- page . searchBefore ( taskSearch . searchBefore (). stream (). map ( Object . class :: cast ). toList () );
292+ LOG . warn ( " searchBefore is not supported, please use before" );
285293 }
286294 if (taskSearch .searchAfterOrEqual () != null ) {
287- LOG .warn ("searchAfterOrEqual is not supported, please use searchAfter " );
295+ LOG .warn ("searchAfterOrEqual is not supported, please use after " );
288296 }
289297 if (taskSearch .searchBeforeOrEqual () != null ) {
290- LOG .warn ("searchBeforeOrEqual is not supported, please use searchBefore" );
298+ LOG .warn ("searchBeforeOrEqual is not supported, please use before" );
299+ }
300+ if (taskSearch .before () != null ) {
301+ page .before (taskSearch .before ());
302+ }
303+ if (taskSearch .after () != null ) {
304+ page .after (taskSearch .after ());
291305 }
292306 };
293307 }
@@ -359,18 +373,7 @@ public List<TaskFromSearch> searchTasks(TaskSearch taskSearch) {
359373 taskSearch , camundaClient .getConfiguration ().getJsonMapper ()))
360374 .send ()
361375 .join ();
362- List <UserTask > items = searchResponse .items ();
363- List <TaskFromSearch > result = new ArrayList <>();
364- for (UserTask item : items ) {
365- if (isFirst (item , items )) {
366- result .add (toTaskFromSearch (item , searchResponse .page ().firstSortValues ()));
367- } else if (isLast (item , items )) {
368- result .add (toTaskFromSearch (item , searchResponse .page ().lastSortValues ()));
369- } else {
370- result .add (toTaskFromSearch (item , null ));
371- }
372- }
373- return result ;
376+ return searchResponse .items ().stream ().map (TasklistClientV2 ::toTaskFromSearch ).toList ();
374377 }
375378
376379 @ Override
0 commit comments