/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . ĠM ats uda , ĠA ki hit Ġ( ak ih ito 1 0 4 ) Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . fresh digit able . ud on road 2 . data . rest client Ċ Ċ import Ġcom . fresh digit able . ud on road 2 . data . User DataSource Ċ import Ġcom . fresh digit able . ud on road 2 . data . rest client . ext . to Entity Ċ import Ġcom . fresh digit able . ud on road 2 . model . UserId Ċ import Ġcom . fresh digit able . ud on road 2 . model . user . User Entity Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ internal Ġclass ĠUser RestClient Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġtwitter : ĠApp Twitter Ċ ) Ġ: ĠUser DataSource . Remote Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun ĠgetUser ( id : ĠUserId ): ĠUser Entity Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġu Ġ= Ġtwitter . fetch Ġ{ Ġshow User ( id . value ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġu . to Entity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetUser Source ( id : ĠUserId ): ĠFlow < User Entity ?> Ġ= Ġthrow ĠNotImplementedError () ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfind User ( id : ĠUserId ): ĠUser Entity Ġ= Ġthrow ĠNotImplementedError () ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġadd User ( user : ĠUser Entity ) Ġ= Ġthrow ĠNotImplementedError () Ċ } Ċ