package Ġcom . br ais gab in . inter view . k apt en . home . data Ċ Ċ import Ġarrow . core . Either Ċ import Ġarrow . core . left Ċ import Ġarrow . core . right Ċ import Ġcom . br ais gab in . inter view . k apt en . entity . Trip Ċ import Ġcom . br ais gab in . inter view . k apt en . home . domain . Tri ps Repository Ċ import Ġio . reactivex . Single Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠApi DataSource Ġ@ Inject Ġconstructor ( ĊĠ Ġprivate Ġval Ġrest Api : ĠRest Api Ċ ) Ġ: ĠTri ps Repository Ġ{ ĊĊĠ Ġoverride Ġfun Ġget (): ĠSingle < Either < Throwable , ĠList < Trip >>> Ġ{ ĊĠĠĠ Ġreturn Ġrest Api . get () ĊĠĠĠĠĠ Ġ. map < Either < Throwable , ĠList < Trip >>> Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġresponse . body () !!. map Ġ{ Ġit . to Domain () Ġ}. right () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠException (" Something Ġwent Ġwrong "). left () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. do OnError Ġ{ ĊĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. onError Return Ġ{ Ġit . left () Ġ} ĊĠ Ġ} Ċ } Ċ