package Ġcom . gmail . s ht uk arr v . dog bre eds app . data . repository Ċ Ċ import Ġcom . gmail . s ht uk arr v . dog bre eds app . data . Api Constants . SUCCESS _ STATUS Ċ import Ġcom . gmail . s ht uk arr v . dog bre eds app . data . Fetch DataException Ċ import Ġcom . gmail . s ht uk arr v . dog bre eds app . data . ServerError Exception Ċ import Ġcom . gmail . s ht uk arr v . dog bre eds app . data . api . Dog B reed s Api Ċ import Ġcom . gmail . s ht uk arr v . dog bre eds app . data . local . Dog B reed s Dao Ċ import Ġcom . gmail . s ht uk arr v . dog bre eds app . domain . entity . Dog B reed Ċ import Ġcom . gmail . s ht uk arr v . dog bre eds app . domain . repository . Dog B reed s Repository Ċ import Ġkotlinx . coroutines . coroutine Scope Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠDog B reed s Repository Impl ( ĊĠĠĠ Ġprivate Ġval Ġapi : ĠDog B reed s Api , ĊĠĠĠ Ġprivate Ġval Ġdatabase : ĠDog B reed s Dao Ċ ) Ġ: ĠDog B reed s Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Dog B reed s (): ĠFlow < List < Dog B reed >> Ġ= Ġcoroutine Scope Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . get Dog B reed s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġit . body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull Ġ&& Ġresult . status Ġ== ĠSUCCESS _ STATUS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdog Bre edList Ġ= Ġresult . to Dog Bre edList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . save Dog B reed s List ( dog Bre edList ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠFetch DataException ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġthrow ĠServer ErrorException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . code (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . error Body ()?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdatabase . getAll Dog B reed s Flow () ĊĠĠĠ Ġ} Ċ } Ċ