package Ġapp . fr an ken stein . atm locator . data Ċ Ċ import Ġapp . fr an ken stein . atm locator . domain .* Ċ import Ġapp . fr an ken stein . atm locator . utils . Coroutine Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRepository Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġpo i DataSource : ĠPo i Api , ĊĠĠĠ Ġprivate Ġval Ġdispatch ers : ĠCor outine Dispatch ers Ċ ) Ġ: ĠRepository Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Poi ( ĊĠĠĠĠĠĠĠ Ġbounds : ĠBounds ĊĠĠĠ Ġ): ĠResult < List < Venue >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpo i DataSource . get Ven ues ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . lat North East , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . lng North East , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . lat South West , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . lng South West ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). get Network Response (). let Ġ{ Ġresult Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( dispatch ers . Default ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( result ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSuccess Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSuccess ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . to Ven ues List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFailure Ġ-> ĠFailure ( result . cause ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFailure ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠSuccess < Ven ues List Dto >. to Ven ues List (): ĠList < Venue >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata . ven ues . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( it ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV en ue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġcategory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinate Ġ= ĠCoordinate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }