package Ġcom . mar cel or corre a . news api Ċ Ċ import Ġcom . mar cel or corre a . news api . builder . Everything Request Ċ import Ġcom . mar cel or corre a . news api . builder . Source Request Ċ import Ġcom . mar cel or corre a . news api . builder . Top Head lines Request Ċ import Ġcom . mar cel or corre a . news api . di . inject Dependencies Ċ import Ġcom . mar cel or corre a . news api . model . Article Result Ċ import Ġcom . mar cel or corre a . news api . model . Source Result Ċ import Ġcom . mar cel or corre a . news api . service . News ApiService Ċ import Ġorg . k oin . core . K oin Component Ċ import Ġorg . k oin . core . inject Ċ Ċ class ĠNews Api ( apiKey : ĠString ) Ġ: ĠK oin Component Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinject Dependencies ( apiKey ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġnews ApiService : ĠNews ApiService Ġby Ġinject () ĊĊĠĠĠ Ġsuspend Ġfun Ġfetch Sources ( block : ĠSource Request . () Ġ-> ĠUnit ): ĠSource Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( category , Ġlanguage , Ġcountry ) Ġ= ĠSource Request (). apply Ġ{ Ġblock () Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnews ApiService . get Sources ( category ?. value , Ġlanguage ?. value , Ġcountry ?. value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġfetch Everything ( block : ĠEverything Request . () Ġ-> ĠUnit ): ĠArticle Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( q , Ġsources , Ġdomains , Ġfrom , Ġto , Ġlanguage , ĠsortBy ) Ġ= ĠEverything Request (). apply Ġ{ Ġblock () Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnews ApiService . get Everything ( q , Ġsources , Ġdomains , Ġfrom , Ġto , Ġlanguage ?. value , ĠsortBy ?. value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġfetch Top Head lines ( block : ĠTop Head lines Request . () Ġ-> ĠUnit ): ĠArticle Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( q , Ġcategory , Ġcountry , Ġsources ) Ġ= ĠTop Head lines Request (). apply Ġ{ Ġblock () Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnews ApiService . get Top Head lines ( category ?. value , Ġcountry ?. value , Ġsources , Ġq ) ĊĠĠĠ Ġ} Ċ } Ċ