package Ġch . max ant . k dc . mf . cases . boundary Ċ Ċ import Ġch . max ant . k dc . mf . cases . control . Case Changed Event Ċ import Ġch . max ant . k dc . mf . cases . entity . Case Entity Ċ import Ġch . max ant . k dc . mf . cases . entity . State Ċ import Ġch . max ant . k dc . mf . cases . entity . Task Entity Ċ import Ġorg . eclipse . micro profile . metrics . Metric Units Ċ import Ġorg . eclipse . micro profile . metrics . annotation . Timed Ċ import Ġorg . eclipse . micro profile . openapi . annotations . Operation Ċ import Ġorg . eclipse . micro profile . openapi . annotations . parameters . Parameter Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . persistence . EntityManager Ċ import Ġjavax . ws . rs .* Ċ import Ġjavax . ws . rs . core . MediaType Ċ import Ġjavax . ws . rs . core . Response Ċ Ċ @ Path ("/ cases ") Ċ @ Cons umes ( MediaType . APPLICATION _ JSON ) Ċ @ Produces ( MediaType . APPLICATION _ JSON ) Ċ class ĠC ases Resource ( ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġvar Ġem : ĠEntity Manager Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Operation ( summary Ġ= Ġ" get Ġall Ġcases Ġincluding Ġtasks , Ġby Ġreference Ids ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" task State Ġshould Ġbe Ġone Ġof Ġ*, ĠOPEN Ġor ĠDONE . Ġonly Ġtasks Ġmatching , Ġare Ġreturned .") ĊĠĠĠ Ġ@ Path ("/ by Reference Ids /{ task State }") ĊĠĠĠ Ġ@ Timed ( unit Ġ= ĠMetric Units . MILLISECONDS ) ĊĠĠĠ Ġfun ĠgetBy Reference Ids (@ Parameter ( name Ġ= Ġ" task State ") Ġ@ Path Param (" task State ") Ġtask State String : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameter ( name Ġ= Ġ" reference Ids ") Ġ@ QueryParam (" reference Ids ") Ġreference Ids : ĠList < UUID >): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcases Ġ= ĠCase Entity . Queries . select By Reference Ids ( em , Ġreference Ids ) ĊĠĠĠĠĠĠĠ Ġval Ġtasks Ġ= ĠTask Entity . Queries . select By Case Ids ( em , Ġcases . map Ġ{ Ġit . id Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġtask State String Ġ== Ġ"*" Ġ|| ĠState . valueOf ( task State String ) Ġ== Ġit . state Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġcases . map Ġ{ ĠCase Changed Event ( it , Ġtasks . filter Ġ{ Ġtask Ġ-> Ġtask . case Id Ġ== Ġit . id Ġ}) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResponse . ok ( results ). build () ĊĠĠĠ Ġ} Ċ Ċ } Ċ