package Ġio . github . ed gard obar ri am . tech k android challenge . server Ċ Ċ import Ġio . reactivex . Observable Ċ import Ġokhttp 3 . Multipart Body Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . RequestBody Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġretrofit 2 . http .* Ċ Ċ interface ĠImg ur ApiService Ġ{ ĊĊĠĠĠ Ġ@ GET (" tags ") Ġfun ĠgetDefault Tags (): ĠObservable < Tags ListResponse > ĊĊĠĠĠ Ġ@ GET (" gallery / t /{ tag }/ ") Ġfun Ġget Tag G all eries (@ Path (" tag ") Ġtag : ĠString Ġ): ĠObservable < Gallery Search Response > ĊĊĠĠĠ Ġ@ GET (" gallery /{ image Id }/ comments /") Ġfun Ġget Gallery Comments (@ Path (" image Id ") Ġimage Id : ĠString Ġ): ĠObservable < Gallery Comments Response > ĊĊĠĠĠ Ġ@ Multipart ĊĠĠĠ Ġ@ POST (" image ") Ġfun Ġpost Image ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Part Ġimage : ĠMultip art Body . Part , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Part (" title ") Ġtitle : ĠRequest Body , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Part (" description ") Ġdescription : ĠRequest Body ) Ġ: ĠObservable < Upload Response > ĊĊĠĠĠ Ġ// ĠSingleton ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠI MG UR _ ACCESS _ TOKEN Ġ= Ġ" Client - ID Ġ 4 fc 5 fe 4 5 f 2 4 ef 4 a " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAPI _ URL Ġ= Ġ" https :// api . imgur . com / 3 /" ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠImg ur ApiService Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd ĠAuthorization Ġheader Ġto Ġall Ġrequests ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠhttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġit . request (). newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Header (" Authorization ", ĠI MG UR _ ACCESS _ TOKEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . proceed ( builder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( API _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( Img ur ApiService :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }