package Ġcom . cam o . template . database . repos Ċ Ċ import Ġcom . cam o . template . database . local . Local App Db Ċ import Ġcom . cam o . template . database . local . model . Coin Ċ import Ġcom . cam o . template . database . remote . api . CG Api Helper Ċ import Ġcom . cam o . template . util . Resource Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . flow Ċ import Ġretrofit 2 . Response Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRepository Ġ@ Inject Ġconstructor ( private Ġval Ġdb : ĠLocal App Db , Ġval Ġcg Api Helper : ĠCG Api Helper ) Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġping CG (): ĠFlow < Resource < Response < Any >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġflow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . loading ( data Ġ= Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġcg Api Helper . ping () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ( res . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( res . is Successful Ġ&& Ġres . code () Ġ== Ġ 2 0 0 ) Ġemit ( Resource . success ( res )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ( res . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error ( res , Ġ" Couldn 't Ġping Ġserver ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Resource . error ( null , Ġ" Couldn 't Ġping Ġserver ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġadd Coins ( coins : ĠArrayList < Coin >) Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . coin Dao (). add Coins ( coins ) ĊĠĠĠ Ġ} Ċ }