package Ġeu . kan ade . t ach iy omi . data . m ang async . an il ist Ċ Ċ import Ġandroid . net . Uri Ċ import Ġcom . google . gson . JsonObject Ċ import Ġeu . kan ade . t ach iy omi . data . m ang async . an il ist . model . AL M anga Ċ import Ġeu . kan ade . t ach iy omi . data . m ang async . an il ist . model . AL User Lists Ċ import Ġeu . kan ade . t ach iy omi . data . m ang async . an il ist . model . OAuth Ċ import Ġeu . kan ade . t ach iy omi . data . network . POST Ċ import Ġokhttp 3 . Form Body Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġretrofit 2 . Response Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java . Rx Java Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġretrofit 2 . http .* Ċ import Ġrx . Observable Ċ Ċ interface ĠAn il ist Api Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠclientId Ġ= Ġ" t ach iy omi - hrt je " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval Ġclient Secret Ġ= Ġ" nl GB 5 O mg E 9 YW q 5 dr 3 g ID b TQ V 0 C " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval Ġclient Url Ġ= Ġ" t ach iy omi :// an il ist - auth " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠbaseUrl Ġ= Ġ" https :// an il ist . co / api /" ĊĊĠĠĠĠĠĠĠ Ġfun Ġauth Url () Ġ= ĠUri . parse ("${ baseUrl } auth / authorize "). build Up on () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append QueryParameter (" grant _ type ", Ġ" authorization _ code ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append QueryParameter (" client _ id ", ĠclientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append QueryParameter (" redirect _ uri ", Ġclient Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append QueryParameter (" response _ type ", Ġ" code ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġfun Ġrefresh Token Request ( token : ĠString ) Ġ= ĠPOST ("${ baseUrl } auth / access _ token ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" grant _ type ", Ġ" refresh _ token ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" client _ id ", ĠclientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" client _ secret ", Ġclient Secret ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" refresh _ token ", Ġtoken ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate Service ( client : ĠOk HttpClient ) Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( An il ist Api :: class . java ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Form Url Encoded ĊĠĠĠ Ġ@ POST (" auth / access _ token ") ĊĠĠĠ Ġfun Ġrequest AccessToken ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" code ") Ġcode : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" grant _ type ") Ġgrant _ type : ĠString Ġ= Ġ" authorization _ code ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" client _ id ") Ġclient _ id : ĠString Ġ= ĠclientId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" client _ secret ") Ġclient _ secret : ĠString Ġ= Ġclient Secret , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" redirect _ uri ") Ġredirect _ uri : ĠString Ġ= Ġclient Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠObservable < OAuth > ĊĊĠĠĠ Ġ@ GET (" user ") ĊĠĠĠ Ġfun ĠgetCurrent User (): ĠObservable < JsonObject > ĊĊĠĠĠ Ġ@ GET (" manga / search /{ query }") ĊĠĠĠ Ġfun Ġsearch (@ Path (" query ") Ġquery : ĠString , Ġ@ Query (" page ") Ġpage : ĠInt ): ĠObservable < List < AL M anga >> ĊĊĠĠĠ Ġ@ GET (" user /{ username }/ m ang alist ") ĊĠĠĠ Ġfun ĠgetList (@ Path (" username ") Ġusername : ĠString ): ĠObservable < AL User Lists > ĊĊĠĠĠ Ġ@ Form Url Encoded ĊĠĠĠ Ġ@ PUT (" m ang alist ") ĊĠĠĠ Ġfun Ġadd M anga ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" id ") Ġid : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" chapter s _ read ") Ġchapter s _ read : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" list _ status ") Ġlist _ status : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" score _ raw ") Ġscore _ raw : ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠObservable < Response < ResponseBody >> ĊĊĠĠĠ Ġ@ Form Url Encoded ĊĠĠĠ Ġ@ PUT (" m ang alist ") ĊĠĠĠ Ġfun Ġupdate M anga ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" id ") Ġid : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" chapter s _ read ") Ġchapter s _ read : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" list _ status ") Ġlist _ status : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" score _ raw ") Ġscore _ raw : ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠObservable < Response < ResponseBody >> Ċ Ċ }