package Ġru . movie . app . data . services Ċ Ċ import Ġcom . jak ew h art on . ret rofit 2 . converter . kotlin x . serialization . as Converter Factory Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġokhttp 3 . MediaType . Companion . to MediaType Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġru . movie . app . Build Config Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ object ĠRet rofit Module Ġ{ ĊĠĠĠ Ġprivate Ġval Ġjson Ġ= ĠJson Ġ{ ĊĠĠĠĠĠĠĠ Ġignore Unknown Keys Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġclient Ġ= ĠOk HttpClient (). newBuilder () ĊĠĠĠĠĠĠĠ Ġ. add Interceptor ( Http Logging Interceptor (). setLevel ( Http Logging Interceptor . Level . BODY )) ĊĠĠĠĠĠĠĠ Ġ. add Interceptor Ġ{ Ġchain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Url Ġ= Ġchain . request (). url . newBuilder (). add QueryParameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" api _ key ", ĠBuild Config . API _ KEY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Request Ġ= Ġchain . request (). newBuilder (). url ( new Url ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ add Interceptor Ġchain . proceed ( new Request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ. connect Timeout ( 6 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġ@ Suppress (" EXPERIMENT AL _ API _ USAGE ") ĊĠĠĠ Ġprivate Ġval Ġretrofit Ġ= ĠRet rofit . Builder (). client ( client ). baseUrl ( Build Config . BASE _ URL ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( json . as Converter Factory (" application / json ". to MediaType ())) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġval Ġconfiguration Api Ġ= Ġretrofit . create ( Configuration Api :: class . java ) ĊĠĠĠ Ġval Ġmovie Api Ġ= Ġretrofit . create ( Movie Api :: class . java ) ĊĠĠĠ Ġval Ġgen res Api Ġ= Ġretrofit . create ( Gen res Api :: class . java ) Ċ }