package Ġde . lang er h ans . link b ait . ten or Ċ Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Feature Ċ import Ġcom . fasterxml . jackson . databind . module . Simple Module Ċ import Ġcom . fasterxml . jackson . module . kotlin . jackson ObjectMapper Ċ import Ġde . lang er h ans . link b ait . ten or . model . Ten or Base Response Ċ import Ġde . lang er h ans . link b ait . ten or . model . Ten or Tags Response Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . jackson . Jack son Converter Factory Ċ import Ġretrofit 2 . http . GET Ċ import Ġretrofit 2 . http . Query Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġmax ke Ġon Ġ 2 4 . 0 8 . 2 0 1 6 . Ċ Ġ* ĠRet rofit Ġinterface Ġfor Ġthe ĠAPI Ċ Ġ*/ Ċ interface ĠTen or Service Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠBASE _ URL Ġ= Ġ" https :// api . ten or . co / v 1 /" ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠAPI _ KEY Ġ= Ġ" LI V DS R Z UL EL A " Ġ// ĠTODO ĠPut Ġour Ġown ĠAPI Ġkey Ġsomewhere ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠTen or Service Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . intercept ors (). add ( Interceptor Ġ{ Ġchain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġrequest . url (). newBuilder (). add QueryParameter (" key ", ĠAPI _ KEY ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġrequest . newBuilder (). url ( url ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ Interceptor Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmapper Ġ= Ġj ack son ObjectMapper () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= ĠSimple Module () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule . add Deserializer ( Ten or Base Response :: class . java , ĠTen or Deserializer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapper . register Module ( module ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapper . configure ( Deserialization Feature . FAIL _ ON _ UNKNOWN _ PROPERTIES , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( builder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Jack son Converter Factory . create ( mapper )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( Ten or Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GET (" search ") ĊĠĠĠ Ġfun Ġsearch ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" tag ") Ġtag : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" country ") Ġcountry : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" limit ") Ġlimit : ĠInt Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" locale ") Ġlocale : ĠString Ġ= Ġ" en _ US ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" pos ") Ġpos : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Query (" safe search ") Ġsafe search : ĠString Ġ= Ġ" mod erate " ĊĠĠĠ Ġ): ĠCall < Ten or Base Response > ĊĊĠĠĠ Ġ@ GET (" tags ") ĊĠĠĠ Ġfun Ġtags (@ Query (" type ") Ġtag : ĠString Ġ= Ġ" featured "): ĠCall < Ten or Tags Response > ĊĊĠĠĠ Ġ@ GET (" trend ing ") ĊĠĠĠ Ġfun Ġtrend ing (@ Query (" limit ") Ġlimit : ĠInt Ġ= Ġ 1 0 , Ġ@ Query (" pos ") Ġpos : ĠString Ġ= Ġ"") : ĠCall < Ten or Base Response > ĊĊĠĠĠ Ġ@ GET (" music ") ĊĠĠĠ Ġfun Ġcli ps (@ Query (" limit ") Ġlimit : ĠInt Ġ= Ġ 1 0 , Ġ@ Query (" pos ") Ġpos : ĠString Ġ= Ġ"") : ĠCall < Ten or Base Response > ĊĊĠĠĠ Ġ@ GET (" gif s ") ĊĠĠĠ Ġfun Ġg ifs (@ Query (" ids ") Ġids : ĠString ): ĠCall < Ten or Base Response > Ċ Ċ }