package Ġru . red mad robot . common . data . genre Ċ Ċ import Ġdagger . Re usable Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Maybe Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġru . red mad robot . persist . dao . Genre Dao Ċ import Ġru . red mad robot . persist . entities . Genre Db Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ @ Re usable Ċ class ĠGen res Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġgen res Dao : ĠGen re Dao , ĊĠĠĠ Ġprivate Ġval Ġgenre Service : ĠGen re Api Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġfetch Gen res And Save (): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgenre Service . all Movie Gen res () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( Genre Response :: result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Comp letable ( this :: save Gen res ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Gen res ( genres : ĠList < Genre >): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . from Iterable ( genres ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( Genre :: to Genre Db ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Comp letable ( genres Dao :: insert All ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Complete Ġ{ ĠTim ber . d ("$ genres Ġsaved !") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgenre ById ( genre Id : ĠLong ): ĠMaybe < Genre > Ġ{ Ġ// Ġtodo : ĠÐ¿ Ð¾Ð¿ ÑĢÐ°Ð² Ð¸ÑĤÑĮ ĠÐ¿ÑĢÐ°Ð² Ð¸Ð» Ð¾ ĠÐ· Ð°Ð² Ð¸Ñģ Ð¸Ð¼Ð¾ÑģÑĤ ÐµÐ¹ ĊĠĠĠĠĠĠĠ Ġreturn Ġgen res Dao . findById ( genre Id ). map ( Genre . Companion :: from Genre Db ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġall Gen res ById s ( genres Ids : ĠList < Long >): ĠSingle < List < Genre Db >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgen res Dao . findAll ById s ( genres Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. switch If Empty ( Single . just ( listOf ())) ĊĠĠĠ Ġ} Ċ } Ċ