package Ġgr . black sw amp . ratings di ary . data . repos Ċ Ċ import Ġgr . black sw amp . core . data . Response Ċ import Ġgr . black sw amp . ratings di ary . data . db . ID atabase Ċ import Ġgr . black sw amp . ratings di ary . data . db . entities . Entry Ċ import Ġgr . black sw amp . ratings di ary . data . db . prefs . IP refs Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjava . lang . Exception Ċ import Ġjava . util .* Ċ Ċ class ĠMain Repo ( val Ġdb : ĠID atabase , Ġval Ġprefs : ĠIP refs ) Ġ: ĠI Main Repo Ġ{ ĊĊĠĠĠ Ġfun Ġget Entries () Ġ= Ġdb . dao . get Entries () ĊĊĠĠĠ Ġsuspend Ġfun Ġsave Entry ( name : ĠString , Ġdate : ĠDate , Ġrating : ĠInt ): ĠResponse < Long > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentry Ġ= ĠEntry ( UUID . randomUUID (), Ġname , Ġdate , Ġrating ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġdb . dao . insert ( entry ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . success ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . failure ( t ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġdelete Entry ( id : ĠUUID ): ĠResponse < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġdb . dao . delete ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . success ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . failure ( t ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }