package Ġcom . jh ai asi . it unes music search . network Ċ Ċ import Ġcom . jak ew h art on . ret rofit 2 . adapter . kotlin . coroutines . Coroutine Call Adapter Factory Ċ import Ġcom . jh ai asi . it unes music search . data . Date Json Converter Ċ import Ġcom . jh ai asi . it unes music search . data . Search Response Ċ import Ġcom . squareup . mos hi . M oshi Ċ 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 . mos hi . M oshi Converter Factory Ċ import Ġretrofit 2 . http . GET Ċ import Ġretrofit 2 . http . Query Ċ import Ġjava . util .* Ċ Ċ interface ĠMusic Service Ġ{ ĊĊĠĠĠ Ġ@ GET ("/ search ? country = PH & media = music & limit = 6 0 ") ĊĠĠĠ Ġfun Ġget SearchResults Async (@ Query (" term ") Ġkeywords : ĠString ): ĠDeferred < Response < Search Response >> ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠBASE _ URL Ġ= Ġ" https :// it unes . apple . com " ĊĊĠĠĠĠĠĠĠ Ġfun Ġinit (): ĠMusic Service Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOk HttpClient (). newBuilder (). add Interceptor ( Http Logging Interceptor (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM oshi Converter Factory . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM oshi . Builder (). add ( Date :: class . java , ĠDate Json Converter ()). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Coroutine Call Adapter Factory ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( Music Service :: class . java ) ĊĠĠĠ Ġ} Ċ }