package Ġnl . ent re co . g idd y app . lib hor ses . fetch Ċ Ċ import Ġnl . ent re co . g idd y app . lib core . on Bg Ċ import Ġnl . ent re co . g idd y app . lib hor ses . H orse Service Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠFetch H orse Use case Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġservice : ĠH orse Service Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠB ATCH _ SIZE Ġ= Ġ 1 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠR AN DOM Ġ= Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgo ( request : ĠFetch H orse Request , Ġdone : Ġ( Fetch H orse Response ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Bg Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġids Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . id . isNull Or Blank () Ġ-> Ġ( 0 Ġuntil ĠB ATCH _ SIZE ). map Ġ{ ĠR AN DOM Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠlistOf ( request . id ) Ġ+ Ġ( 1 Ġuntil ĠB ATCH _ SIZE ). map Ġ{ ĠR AN DOM Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . retrieve ( ids , Ġrequest . filter Options ) Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdone ( Fetch H orse Response ( response )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }