package Ġme . s arg un vo h ra . lib . poke kotlin . sk affold Ċ Ċ import Ġme . s arg un vo h ra . lib . poke kotlin . client . ErrorResponse Ċ import Ġme . s arg un vo h ra . lib . poke kotlin . model . Resource Summary Ċ import Ġme . s arg un vo h ra . lib . poke kotlin . sk affold . services . Po ke ApiService Ċ import Ġme . s arg un vo h ra . sk affold . data . crud . Retrieve DataSource Ċ import Ġme . s arg un vo h ra . sk affold . data . exception . Network Connection Exception Ċ import Ġme . s arg un vo h ra . sk affold . data . exception . NotFoundException Ċ import Ġrx . Observable Ċ import Ġrx . Single Ċ import Ġrx . lang . kotlin . observable Ċ import Ġrx . lang . kotlin . single Ċ import Ġjava . net . Socket TimeoutException Ċ import Ġjava . net . Unknown Host Exception Ċ Ċ class ĠPo ke Api DataSource < Summary Ġ: ĠResource Summary , ĠDetail >( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġservice : ĠPo ke ApiService < Summary , ĠDetail > Ċ ) Ġ: ĠRetrieve DataSource < Summary , ĠDetail > Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġmap Exception ( exception : ĠThrowable ): ĠThrowable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSocket TimeoutException Ġ-> ĠNetwork Connection Exception () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUnknown Host Exception Ġ-> ĠNetwork Connection Exception () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠError Response Ġ-> Ġwhen ( exception . code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 4 Ġ-> ĠNotFound Exception () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġexception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow Ġexception ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġretrieve ( key : ĠSummary ): ĠSingle < Detail > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsingle Ġ{ Ġsubscriber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . on Success ( service . getResource ( key . id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . onError ( map Exception ( e )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġretrieve All (): ĠObservable < Summary > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobservable Ġ{ Ġsubscriber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġempty List Ġ= Ġservice . getResource List ( 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull List Ġ= Ġservice . getResource List ( 0 , Ġempty List . count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull List . results . forEach Ġ{ Ġsubscriber . onNext ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . on Completed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . onError ( map Exception ( e )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }