package Ġcom . mat ero y . ed v ora . home . data . repository Ċ Ċ import Ġcom . mat ero y . ed v ora . core . util . Resource Ċ import Ġcom . mat ero y . ed v ora . home . data . Ed v ora Api Ċ import Ġcom . mat ero y . ed v ora . home . domain . model . Product Ċ import Ġcom . mat ero y . ed v ora . home . domain . repository . Product Repository Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . flow Ċ import Ġretrofit 2 . HttpException Ċ import Ġjava . io . IOException Ċ Ċ class ĠProduct Repository Impl ( ĊĠĠĠ Ġprivate Ġval Ġapi : ĠEd v ora Api Ċ ): ĠProduct Repository { ĊĠĠĠ Ġoverride Ġfun Ġget Products (): ĠFlow < Resource < List < Product >>> Ġ= Ġflow Ġ{ ĊĠĠĠĠĠĠĠ Ġemit ( Resource . Loading < List < Product >> ()) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproducts Ġ= Ġapi . get Products () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . Success < List < Product >>( products . map Ġ{ Ġit . to Product () Ġ})) ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . Error < List < Product >>( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Oo ops , Ġsomething Ġwent Ġwrong ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . Error < List < Product >>( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Couldn 't Ġreach Ġserver Ġcheck Ġyour Ġinternet Ġconnection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }