/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠGoogle ĠLLC . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġio . pl aid app . core . product h unt . domain Ċ Ċ import Ġio . pl aid app . core . data . Result Ċ import Ġio . pl aid app . core . product h unt . data . api . Product H unt Repository Ċ import Ġio . pl aid app . core . product h unt . data . api . model . Post Ċ import Ġio . pl aid app . core . product h unt . data . api . model . to Post Ċ import Ġio . pl aid app . core . util . exhaustive Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠClass Ġthat Ġknows Ġhow Ġto Ġload Ġposts Ċ Ġ*/ Ċ class ĠLoad Posts UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġproduct H unt Repository : ĠProduct H unt Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoad ĠProduct ĠH unt Ġdata Ġfor Ġa Ġspecific Ġpage Ġand Ġreturn Ġthe Ġresult Ġeither Ġin ĠonSuccess Ġor Ġin ĊĠĠĠĠ Ġ* ĠonError ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġoperator Ġfun Ġinvoke ( ĊĠĠĠĠĠĠĠ Ġpage : ĠInt ĊĠĠĠ Ġ): ĠResult < List < Post >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġproduct H unt Repository . load Posts ( page ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposts Ġ= Ġresult . data . posts . map Ġ{ Ġit . to Post () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult . Success ( posts ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Error Ġ-> Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ}. exhaustive ĊĠĠĠ Ġ} Ċ } Ċ