package Ġio . h nd rs . slack . api . spring . group . users Ċ Ċ import Ġio . h nd rs . slack . api . contract . jackson . common . types . Member Ċ import Ġio . h nd rs . slack . api . contract . jackson . group . users . Error List All Response Ċ import Ġio . h nd rs . slack . api . contract . jackson . group . users . List Request Ċ import Ġio . h nd rs . slack . api . contract . jackson . group . users . Successful List All Response Ċ import Ġio . h nd rs . slack . api . group . Api Call Result Ċ import Ġio . h nd rs . slack . api . group . users . UserList All Method Ċ import Ġio . h nd rs . slack . api . group . users . Users Method Group Ċ import Ġio . h nd rs . slack . api . spring . group . Rest Template Factory Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . web . client . Rest Template ĊĊ Ċ /** Ċ Ġ* ĠSpring Ġbased Ġimplementation Ġof Ġ[ Users Method Group . list All ] Ċ Ġ*/ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ class ĠSpring UserList All Method ( auth Token : ĠString , Ġrest Template : ĠRest Template Ġ= Ġio . h nd rs . slack . api . spring . group . Rest Template Factory . slack Template ()) Ġ: ĊĠĠĠ Ġio . h nd rs . slack . api . group . users . UserList All Method () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġspring UserList Method : ĠSpring UserList Method Ġ= ĠSpring UserList Method ( auth Token , Ġrest Template ) ĊĊĠĠĠ Ġoverride Ġfun Ġrequest (): Ġio . h nd rs . slack . api . group . Api Call Result < Successful List All Response , ĠError List All Response > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmembers Ġ= Ġmutable ListOf < Member >() ĊĠĠĠĠĠĠĠ Ġvar Ġnext Cursor : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġerror : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠList Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Locale Ġ= Ġthis . params . include Locale , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġnext Cursor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġthis . params . package Size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġspring UserList Method . with ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ ĠLOG . debug (" Error Ġwhile Ġfetching Ġall Ġusers , Ġ{}", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ ĠLOG . debug (" Fetching Ġusers Ġwith Ġ{}\ n {}", Ġrequest , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. invoke () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . was Success ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ?. members ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmembers . addAll ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Cursor Ġ= Ġresult . success ?. response Metadata ?. next Cursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Cursor Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġresult . failure ?. error ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ(! next Cursor . isNull Or Blank () Ġ&& Ġerror Ġ== Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( error Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror List All Response Ġ= ĠError List All Response ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . on Failure ?. invoke ( error List All Response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . h nd rs . slack . api . group . Api Call Result ( failure Ġ= Ġerror List All Response ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsuccessful List All Response Ġ= ĠSuccessful List All Response ( members ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . on Success ?. invoke ( successful List All Response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . h nd rs . slack . api . group . Api Call Result ( success Ġ= Ġsuccessful List All Response ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOG Ġ= ĠLoggerFactory . getLogger ( Spring UserList All Method :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ