package Ġfi . k ro on . v ad ret . data . radar Ċ Ċ import Ġfi . k ro on . v ad ret . data . exception . Either Ċ import Ġfi . k ro on . v ad ret . data . exception . Failure Ċ import Ġfi . k ro on . v ad ret . data . radar . model . Rad ar Ċ import Ġfi . k ro on . v ad ret . data . radar . net . Rad ar Api Ċ import Ġfi . k ro on . v ad ret . utils . Network Handler Ċ import Ġio . reactivex . Single Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRad ar Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġradar Api : ĠRad ar Api , ĊĠĠĠ Ġprivate Ġval Ġnetwork Handler : ĠNetwork Handler Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġget ( radar Request : ĠRad ar Request ): ĠSingle < Either < Failure , ĠRad ar >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( network Handler . isConnected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> ĠSingle . just ( radar Request ). flatMap Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradar Api . get ( year Ġ= Ġit . year , Ġmonth Ġ= Ġit . month , Ġdate Ġ= Ġit . date , Ġformat Ġ= Ġit . format , Ġtime Zone Ġ= Ġit . time Zone ). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Response : Ġ${ it . body () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( it . body () !! ) Ġas ĠEither < Failure , ĠRad ar > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. do On Event Ġ{ Ġt 1 , Ġt 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" T 1 : Ġ$ t 1 , ĠT 2 : Ġ$ t 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. do OnError Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Error Ġoccured : Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. onError Return Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left ( Failure . Network Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> ĠSingle . just ( Either . Left ( Failure . Network Offline Failure ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }