package Ġcom . far id fa jr ak . kotlin _ playground . repository Ċ Ċ import Ġcom . far id fa jr ak . kotlin _ playground . Build Config Ċ import Ġcom . far id fa jr ak . kotlin _ playground . features . currency _ list . Currency Model Ċ import Ġkotlinx . coroutines . Deferred Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Response Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġretrofit 2 . http . GET Ċ import Ġretrofit 2 . http . Query Ċ Ċ interface ĠApi Service { ĊĊĠĠĠ Ġ@ GET (" coins / mark ets ? vs _ currency = usd & order = market _ cap _ desc & per _ page = 5 0 & page = 1 ") ĊĠĠĠ Ġsuspend Ġfun Ġget Currency List Async (@ Query (" vs _ currency ") Ġcurrency Ġ: ĠString ,@ Query (" order ") Ġorder Ġ: ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" per _ page ") Ġper Page Ġ: ĠString ,@ Query (" page ") Ġpage Ġ: ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ: ĠResponse Ġ< List < Currency Model >> ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġfun Ġcreate () Ġ: ĠApi Service Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠbaseUrl Ġ= ĠBuild Config . base _ url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . level Ġ= ĠHttp Logging Interceptor . Level . BASIC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( logger ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( ApiService :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ