package Ġcom . github . space pi lo th ann ah . sp ong iform . data . api Ċ Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġcom . squareup . mos hi . kotlin . reflect . Kotlin Json Adapter Factory Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . http .* Ċ import Ġcom . github . space pi lo th ann ah . sp ong iform . data . api . dto .* Ċ import Ġokhttp 3 . Credentials Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . mos hi . M oshi Converter Factory Ċ import Ġcom . github . space pi lo th ann ah . sp ong iform . util . RFC 8 6 0 1 Json Adapter Ċ Ċ class ĠSp ong iform Service Ġ{ ĊĠĠĠ Ġinterface ĠApi Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ GET (" requests ") ĊĠĠĠ Ġfun Ġget Requests (@ Query (" pending ") Ġpending Ġ: ĠBoolean ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" allowed ") Ġallowed Ġ: ĠBoolean ?): ĠCall < List < Request >> ĊĊĠĠĠĠĠĠĠ Ġ@ GET (" requests /{ id }") ĊĠĠĠĠĠĠĠ Ġfun Ġget Request (@ Path (" id ") Ġid Ġ: ĠInt ): ĠCall < Request > ĊĊĠĠĠĠĠĠĠ Ġ@ PUT (" requests /{ id }") ĊĠĠĠĠĠĠĠ Ġfun Ġupdate Request (@ Path (" id ") Ġid Ġ: ĠInt , Ġ@ Body Ġupdate : ĠRequest Update ) Ġ: ĠCall < Request > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġmake Ok HttpClient ( username : ĠString , Ġpassword : ĠString ): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOk HttpClient (). newBuilder (). add Interceptor Ġ{ Ġchain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Request Ġ= Ġchain . request () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġoriginal Request . newBuilder (). header (" Authorization ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCredentials . basic ( username , Ġpassword )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Request Ġ= Ġbuilder . build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( new Request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġget ApiClient ( url : ĠString , Ġusername : ĠString , Ġpassword : ĠString ): ĠApi Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm oshi Ġ= ĠM oshi . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( Kotlin Json Adapter Factory ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( RFC 8 6 0 1 Json Adapter ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( M oshi Converter Factory . create ( mos hi )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( make Ok HttpClient ( username , Ġpassword )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( Api :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ