package Ġto ky o . over software . book explorer . model . datastore . remote Ċ Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġcom . squareup . mos hi . kotlin . reflect . Kotlin Json Adapter Factory Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġio . reactivex . rx java 3 . core . Single Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java 3 . Rx Java 3 Call Adapter Factory Ċ import Ġretrofit 2 . converter . mos hi . M oshi Converter Factory Ċ import Ġretrofit 2 . http . GET Ċ import Ġretrofit 2 . http . Query Ċ import Ġto ky o . over software . book explorer . Build Config Ċ import Ġto ky o . over software . book explorer . entity . Books Ċ Ċ /** Ċ Ġ* ĠRet rofit ãģ® ãĤ¤ãĥ³ ãĤ¿ ãĥķãĤ § ãĥ¼ãĤ¹ ãĤĴ å®ļç¾© ãģĻãĤĭ Ċ Ġ*/ Ċ object ĠApi Client Ġ{ ĊĊĠĠĠ Ġ// ĠAPI ãģ® æĹ¢ å®ļ URL ĊĠĠĠ Ġprivate Ġconst Ġval ĠAPI _ BASE _ URL Ġ= Ġ" https :// www . googleapis . com / books / v 1 /" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRet rofit ãģ® ãĤ¤ãĥ³ ãĤ¿ ãĥķãĤ § ãĥ¼ãĤ¹ ãĤĴä½ľæĪĲ ãģĻãĤĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġbuild (): ĠApi Service Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm oshi Ġ= ĠM oshi . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( Kotlin Json Adapter Factory ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// ĠRelease ãĥĵ ãĥ« ãĥī æĻĤ ãģ¯ å®Łè¡Į ãĥĳ ãĥķãĤ© ãĥ¼ãĥ ŀ ãĥ³ãĤ¹ ãģ® å¦ ¨ ãģ Ĵ ãģ« ãģªãĤĭ ãģ®ãģ§ ãĥŃãĤ° ãĤĴ åĩºåĬĽ ãģĹãģªãģĦ ĊĠĠĠĠĠĠĠ Ġval ĠhttpClient : ĠOk HttpClient Ġ= Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOk HttpClient . Builder (). add Interceptor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterceptor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOk HttpClient . Builder (). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( API _ BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( M oshi Converter Factory . create ( mos hi )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 3 Call Adapter Factory . create ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġretrofit : ĠRet rofit Ġ= Ġbuilder . client ( httpClient ). build () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( ApiService :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinterceptor (): ĠHttp Logging Interceptor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhttp Logging Interceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġhttp Logging Interceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠ Ġreturn Ġhttp Logging Interceptor ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠAPI å®ļç¾© ĊĠĠĠ Ġinterface ĠApi Service Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ GET (" volumes ") ĊĠĠĠĠĠĠĠ Ġfun Ġvolumes ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" q ") Ġname : ĠString , Ġ@ Query (" startIndex ") ĠstartIndex : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" max Results ") Ġlimit : ĠInt Ġ= Ġ 2 0 ĊĠĠĠĠĠĠĠ Ġ): ĠSingle < Books > ĊĠĠĠ Ġ} Ċ }