package Ġde . rob ol ab . client . net Ċ Ċ import Ġde . rob ol ab . client . net . requests .* Ċ import Ġde . rob ol ab . client . net . requests . auth . Device Auth Prompt Ċ import Ġde . rob ol ab . client . net . requests . auth . I Device Auth Prompt Callbacks Ċ import Ġde . rob ol ab . client . net . requests . auth . Token Response Ċ import Ġde . rob ol ab . common . net . HttpMethod Ċ import Ġde . rob ol ab . common . net . headers . Authorization Header Ċ import Ġde . west erm ann . k observe . base . Observable Property Ċ Ċ interface ĠIR ob ol ab Server Ġ{ ĊĠĠĠ Ġval Ġhost URL : ĠString ĊĠĠĠ Ġval Ġhost Port : ĠInt ĊĠĠĠ Ġval Ġprotocol : ĠString ĊĠĠĠ Ġval Ġauth Header Property : ĠObservable Property < Authorization Header ?> ĊĠĠĠ Ġvar Ġauth Header : ĠAuthorization Header ? ĊĊĠĠĠ Ġfun Ġreset Auth Session () ĊĊĠĠĠ Ġsuspend Ġfun Ġrequest ( ĊĠĠĠĠĠĠĠ Ġmethod : ĠHttpMethod , ĊĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġbody : ĠString ? Ġ= Ġnull , Ġquery : ĠMap < String , ĠString > Ġ= Ġempty Map (), ĊĠĠĠĠĠĠĠ Ġheaders : ĠMap < String , ĠList < String >> Ġ= Ġempty Map () ĊĠĠĠ Ġ): ĠServer Response Ċ } Ċ Ċ suspend Ġfun Ġ< R > ĠIR ob ol ab Server . request ( request : ĠI Un bound REST Request < R >): ĠREST Result < R > Ġwhere ĠR Ġ: ĠI REST Response Ġ{ ĊĠĠĠ Ġval Ġresponse Ġ= Ġrequest ( ĊĠĠĠĠĠĠĠ Ġrequest . request Method , ĊĠĠĠĠĠĠĠ Ġrequest . request Path , ĊĠĠĠĠĠĠĠ Ġrequest . request Body , ĊĠĠĠĠĠĠĠ Ġrequest . request Query , ĊĠĠĠĠĠĠĠ Ġrequest . request Header ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġrequest . parse Response ( response ) Ċ } Ċ Ċ suspend Ġfun Ġ< R > ĠIR ob ol ab Server . request ( ĊĠĠĠ Ġrequest : ĠI Un bound REST Request < R >, ĊĠĠĠ Ġblock : ĠRequest Builder . () Ġ-> ĠUnit Ċ ): ĠREST Result < R > Ġwhere ĠR Ġ: ĠI REST Response Ġ{ ĊĠĠĠ Ġval Ġbuilder Ġ= ĠRequest Builder () ĊĠĠĠ Ġbuilder . load Request ( request ) ĊĠĠĠ Ġbuilder . block () ĊĠĠĠ Ġreturn Ġrequest ( builder . build Request ( request )) Ċ } Ċ Ċ suspend Ġfun ĠIR ob ol ab Server . ping ( path : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġping Remote ( ĊĠĠĠĠĠĠĠ Ġprotocol , ĊĠĠĠĠĠĠĠ Ġhost URL , ĊĠĠĠĠĠĠĠ Ġhost Port , ĊĠĠĠĠĠĠĠ Ġpath ĊĠĠĠ Ġ) Ċ } Ċ