package Ġcom . example . popular people . domain . repository Ċ Ċ import Ġcom . example . popular people . data . Pop ular Details DataSource Ċ import Ġcom . example . popular people . data . local . App Database Ċ import Ġcom . example . popular people . data . remote . ApiService Ċ import Ġcom . example . popular people . di . Api Info Ċ import Ġcom . example . popular people . domain . dto . Result Ċ import Ġcom . example . popular people . domain . dto . api . Images Response Ċ import Ġcom . example . popular people . domain . dto . db . Pop ular Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠPop ular Details Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġm App Database : ĠApp Database , ĊĠĠĠ Ġprivate Ġval Ġapi Service : ĠApi Service , ĊĠĠĠ Ġ@ param : Api Info Ġprivate Ġval ĠapiKey : ĠString Ċ ) Ġ: ĠPop ular Details DataSource Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinsert ( popular : ĠPop ular ) Ġ= Ġm App Database . popular Dao (). insert ( popular ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete ( popular : ĠPop ular ) Ġ= Ġm App Database . popular Dao (). delete ( popular ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Favorite ById ( id : ĠInt ): ĠResult < Pop ular > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( m App Database . popular Dao (). get Favorite ById ( id )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( e . localized Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Images ( person Id : ĠInt ): ĠResult < Images Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( api Service . get Images ( person Id , ĠapiKey )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( e . localized Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }