package Ġcom . b apt ist ec ar lier . kotlin . data g ou v fr . client Ċ Ċ import Ġcom . b apt ist ec ar lier . kotlin . data g ou v fr . client . api .* Ċ import Ġcom . b apt ist ec ar lier . kotlin . data g ou v fr . client . exception . Dg fr Exception Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . call .* Ċ import Ġio . ktor . client . engine . android .* Ċ import Ġio . ktor . client . engine . c io .* Ċ import Ġio . ktor . client . features .* Ċ import Ġio . ktor . client . features . json .* Ċ import Ġio . ktor . client . features . json . serializer .* Ċ import Ġio . ktor . client . features . logging .* Ċ import Ġio . ktor . client . request .* Ċ import Ġio . ktor . client . request . forms .* Ċ import Ġio . ktor . client . statement .* Ċ import Ġio . ktor . http .* Ċ Ċ private Ġval ĠhttpClient : ĠHttpClient Ġby Ġlazy Ġ{ ĊĠĠĠ ĠHttpClient ( C IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtime Out : ĠLong Ġ= Ġ 6 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= Ġ" www . data . g ou v . fr " ĊĠĠĠĠĠĠĠ Ġval ĠbasePath Ġ= Ġ"/ api / 1 /" ĊĊĠĠĠĠĠĠĠ Ġexpect Success Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġthis . default Request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . host Ġ= Ġhost ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . protocol Ġ= ĠURL Protocol . HTTPS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . encoded Path Ġ= ĠbasePath Ġ+ Ġurl . encoded Path ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinstall ers ( time Out ) ĊĠĠĠĠĠĠĠ Ġvalidators () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠHttpClient Config <* >. validators () Ġ{ ĊĠĠĠ ĠHttpResponse Validator Ġ{ ĊĠĠĠĠĠĠĠ Ġhandle Response Exception Ġ{ Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exception Ġ! is ĠClient RequestException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ handle Response Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġexception . response . status . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠD g fr Exception ( status ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠHttpClient Config < C IO Engine Config >. install ers ( ĊĠĠĠ Ġtime Out : ĠLong Ċ ) Ġ{ ĊĠĠĠ Ġinstall ( Json Feature ) Ġ{ ĊĠĠĠĠĠĠĠ Ġserializer Ġ= ĠKotlin x Serializer ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlinx . serialization . json . Json Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpretty Print Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Len ient Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Unknown Keys Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġengine Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Timeout Ġ= Ġtime Out ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ param ĠapiKey ĠCl Ã© Ġd ' API Ġ( option nel ) Ċ Ġ*/ Ċ class ĠD g fr Service Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġsite Api : ĠSite Api , ĊĠĠĠ Ġprivate Ġval Ġspatial Api : ĠSpatial Api , ĊĠĠĠ Ġprivate Ġval Ġissues Api : ĠIssues Api , ĊĠĠĠ Ġprivate Ġval Ġdiscussions Api : ĠDis cussion s Api , ĊĠĠĠ Ġprivate Ġval Ġusers Api : ĠUsers Api , ĊĠĠĠ Ġprivate Ġval Ġme Api : ĠMe Api , ĊĠĠĠ Ġprivate Ġval Ġdatasets Api : ĠData sets Api , ĊĠĠĠ Ġprivate Ġval Ġre uses Api : ĠRe uses Api , ĊĠĠĠ Ġprivate Ġval Ġorganizations Api : ĠOrgan izations Api , ĊĠĠĠ Ġprivate Ġval Ġworkers Api : ĠWork ers Api , ĊĠĠĠ Ġprivate Ġval Ġtags Api : ĠTags Api , ĊĠĠĠ Ġprivate Ġval Ġtopics Api : ĠTop ics Api , ĊĠĠĠ Ġprivate Ġval Ġposts Api : ĠPosts Api , ĊĠĠĠ Ġprivate Ġval Ġtransfer Api : ĠTransfer Api , ĊĠĠĠ Ġprivate Ġval Ġnotifications Api : ĠNotifications Api , ĊĠĠĠ Ġprivate Ġval Ġav atars Api : ĠAv atars Api , ĊĠĠĠ Ġprivate Ġval Ġhar vest Api Impl : ĠHar vest Api Ċ ) Ġ: ĊĠĠĠ ĠSite Api Ġby Ġsite Api , ĊĠĠĠ ĠSpatial Api Ġby Ġspatial Api , ĊĠĠĠ ĠIssues Api Ġby Ġissues Api , ĊĠĠĠ ĠDis cussion s Api Ġby Ġdiscussions Api , ĊĠĠĠ ĠUsers Api Ġby Ġusers Api , ĊĠĠĠ ĠMe Api Ġby Ġme Api , ĊĠĠĠ ĠData sets Api Ġby Ġdatasets Api , ĊĠĠĠ ĠRe uses Api Ġby Ġre uses Api , ĊĠĠĠ ĠOrgan izations Api Ġby Ġorganizations Api , ĊĠĠĠ ĠWork ers Api Ġby Ġworkers Api , ĊĠĠĠ ĠTags Api Ġby Ġtags Api , ĊĠĠĠ ĠTop ics Api Ġby Ġtopics Api , ĊĠĠĠ ĠPosts Api Ġby Ġposts Api , ĊĠĠĠ ĠTransfer Api Ġby Ġtransfer Api , ĊĠĠĠ ĠNotifications Api Ġby Ġnotifications Api , ĊĠĠĠ ĠAv atars Api Ġby Ġav atars Api , ĊĠĠĠ ĠHar vest Api Ġby Ġhar vest Api Impl Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġset ApiKey ( apiKey : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġme Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġsite Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġissues Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġdiscussions Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġusers Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġme Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġdatasets Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġre uses Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġorganizations Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġworkers Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġtopics Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġposts Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġtransfer Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġnotifications Api . set ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠ Ġhar vest Api Impl . set ApiKey ( apiKey ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( apiKey : ĠString ? Ġ= Ġnull ): ĠD g fr Service Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsite Api Ġ= ĠSite Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspatial Api Ġ= ĠSpatial Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġissues Api Ġ= ĠIssues Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiscussions Api Ġ= ĠDis cussion s Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusers Api Ġ= ĠUsers Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġme Api Ġ= ĠMe Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdatasets Api Ġ= ĠData sets Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġre uses Api Ġ= ĠRe uses Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorganizations Api Ġ= ĠOrgan izations Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġworkers Api Ġ= ĠWork ers Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtags Api Ġ= ĠTags Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtopics Api Ġ= ĠTop ics Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposts Api Ġ= ĠPosts Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransfer Api Ġ= ĠTransfer Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotifications Api Ġ= ĠNotifications Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġav atars Api Ġ= ĠAv atars Api Impl ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhar vest Api Impl Ġ= ĠHar vest Api Impl ( httpClient ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠD g fr Service ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsite Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspatial Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġissues Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiscussions Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusers Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatasets Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre uses Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorganizations Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworkers Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtags Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtopics Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposts Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransfer Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotifications Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġav atars Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhar vest Api Impl ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( apiKey Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ApiKey ( apiKey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ