package Ġcom . art ium . app . network Ċ Ċ import Ġcom . example . sky core test . Sky core Test App Ċ import Ġcom . example . sky core test . Unsafe Ok HttpClient Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġretrofit 2 . converter . scal ars . Scalars Converter Factory Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton ĊĊ Ċ @ Singleton Ċ class ĠRet rofit Builder Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġart ium App : ĠSky core Test App , ĊĠĠĠ Ġprivate Ġval Ġunsafe Ok HttpClient : ĠUnsafe Ok HttpClient Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġretrofit : ĠRet rofit ĊĠĠĠ Ġlateinit Ġvar Ġapi Service : ĠApi Service ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ret ro Fit With BaseUrl ( art ium App . get BaseUrl ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Ret ro Fit With BaseUrl ( app BaseUrl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġok Http Builder Ġ= Ġunsafe Ok HttpClient . get Unsafe Ok HttpClient ( Ok HttpClient (). newBuilder ()) ĊĊĠĠĠĠĠĠĠ Ġok Http Builder . add Interceptor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġit . request (). newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġrequest Url Ġ= ĠURL Decoder . decode ( request . url . toString (), Ġ" UTF - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġart ium App . get AuthToken (). let Ġ{ Ġauth Token Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Header (" Authorization ", Ġ" Bearer Ġ${ art ium App . get AuthToken () }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . proceed ( builder . build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( app BaseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// . add Converter Factory ( null On Empty Converter Factory ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Scalars Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( ok Http Builder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () Ġ// Does n 't Ġrequire Ġthe Ġadapter ĊĊĠĠĠĠĠĠĠ Ġapi Service Ġ= Ġretrofit . create ( ApiService :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ