package Ġcom . pr asan . news api _ lib . data Ċ Ċ import Ġcom . pr asan . news api _ lib . Build Config Ċ import Ġcom . pr asan . news api _ lib . data . network . News API Ċ import Ġcom . pr asan . news api _ lib . data . network . News Request Query Interceptor Ċ import Ġcom . pr asan . news api _ lib . perform Safe Network Api Call Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . mos hi . M oshi Converter Factory Ċ Ċ internal Ġobject ĠNews Api Repository Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġget Ret rofit ( apiKey : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ ĠRet rofit . Builder (). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl ( Build Config . BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Converter Factory ( M oshi Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient ( Ok HttpClient . Builder (). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Interceptor ( Http Logging Interceptor (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Interceptor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNews Request Query Interceptor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠapiKey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild () ĊĠĠĠĠĠĠĠ Ġ}. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate ( News API :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġsuspend Ġfun Ġget News Sources ( apiKey : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġperform Safe Network Api Call Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Ret rofit ( apiKey ). get News Sources () ĊĠĠĠĠĠĠĠ Ġ} Ċ }