package Ġcom . lw u . ge ek hub . data . network . service Ċ Ċ import Ġcom . lw u . ge ek hub . data . model . AccessToken Ċ import Ġcom . lw u . ge ek hub . data . model . Auth Mode Ċ import Ġio . reactivex . Single Ċ import Ġretrofit 2 . http .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġl wu Ġon Ġ 6 / 1 8 / 1 8 . Ċ Ġ*/ Ċ interface ĠLogin Service Api Ġ{ ĊĠĠĠ Ġ@ POST (" author izations ") ĊĠĠĠ Ġfun Ġlogin (@ Body Ġauth Mode : ĠAuth Mode ): ĠSingle < AccessToken > ĊĊĠĠĠ Ġ@ Form Url Encoded ĊĠĠĠ Ġ@ POST (" access _ token ") ĊĠĠĠ Ġfun Ġget AccessToken (@ Field (" code ") Ġcode : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" client _ id ") ĠclientId : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" client _ secret ") Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" state ") Ġstate : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Field (" redirect _ uri ") Ġredirect Uri : ĠString ): ĠSingle < AccessToken > Ċ } Ċ Ċ class ĠLogin Service ( token : ĠString ? Ġ= Ġnull ): ĠRet rofit Service Base < Login Service Api >( ĊĠĠĠ Ġtoken Ġ= Ġtoken , ĊĠĠĠ Ġservice Class Ġ= ĠLogin Service Api :: class . java Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġget AccessToken ( code : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclientId : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġredirect Uri : ĠString ): ĠSingle < AccessToken > Ġ= ĊĠĠĠĠĠĠĠ Ġservice . get AccessToken ( code , ĠclientId , Ġclient Secret , Ġstate , Ġredirect Uri ) ĊĊĠĠĠ Ġoverride Ġval ĠbaseUrl : ĠString Ġ= Ġ" https :// github . com / login / oauth /" Ċ }