package Ġcom . air wal lex . payment accept ance Ċ Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ internal Ġclass ĠApi Factory Ġinternal Ġconstructor ( private Ġval ĠbaseUrl : ĠString ) Ġ{ ĊĊĠĠĠ Ġfun Ġbuild Ret rofit (): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogging Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġlogging . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Builder Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġclient Builder . intercept ors (). add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInter ceptor Ġ{ Ġchain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġchain . request (). newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Header (" Accept ", Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Header (" Content - Type ", Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . token ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Header (" Authorization ", Ġ" Bearer Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( builder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġclient Builder . connect Timeout ( TIMEOUT _ SECONDS , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġclient Builder . read Timeout ( TIMEOUT _ SECONDS , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġclient Builder . add Interceptor ( logging ) ĊĠĠĠĠĠĠĠ Ġval ĠhttpClient Ġ= Ġclient Builder . build () ĊĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Len ient () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTIME OUT _ SECONDS Ġ= Ġ 1 5 L ĊĠĠĠ Ġ} Ċ } Ċ