Skip to content

Commit c474172

Browse files
committed
feat(kotlin): switch api key helper
1 parent c970712 commit c474172

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

clients/algoliasearch-client-kotlin/client/src/commonMain/kotlin/com/algolia/client/configuration/internal/HttpClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import io.ktor.client.request.*
99
import io.ktor.serialization.kotlinx.json.*
1010

1111
private const val HEADER_APPLICATION_ID = "x-algolia-application-id"
12-
private const val HEADER_APIKEY = "x-algolia-api-key"
12+
public const val HEADER_APIKEY: String = "x-algolia-api-key"
1313

1414
internal fun algoliaHttpClient(
1515
appId: String,

clients/algoliasearch-client-kotlin/client/src/commonMain/kotlin/com/algolia/client/transport/Requester.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,8 @@ public interface Requester {
3030
requestOptions: RequestOptions? = null,
3131
returnType: TypeInfo,
3232
): T
33+
34+
public fun setApiKey(apiKey: String) {
35+
println("Nothing to do here")
36+
}
3337
}

clients/algoliasearch-client-kotlin/client/src/commonMain/kotlin/com/algolia/client/transport/internal/KtorRequester.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.algolia.client.transport.internal
22

33
import com.algolia.client.configuration.CallType
44
import com.algolia.client.configuration.Host
5+
import com.algolia.client.configuration.internal.HEADER_APIKEY
56
import com.algolia.client.exception.AlgoliaRetryException
67
import com.algolia.client.exception.internal.asApiException
78
import com.algolia.client.exception.internal.asClientException
@@ -38,6 +39,16 @@ public class KtorRequester(
3839
private val mutex: Mutex = Mutex()
3940
private val retryableHosts = hosts.map { RetryableHost(it) }
4041

42+
override fun setApiKey(apiKey: String) {
43+
httpClient.config {
44+
defaultRequest {
45+
headers {
46+
append(HEADER_APIKEY, apiKey)
47+
}
48+
}
49+
}
50+
}
51+
4152
override suspend fun <T> execute(
4253
requestConfig: RequestConfig,
4354
requestOptions: RequestOptions?,

templates/kotlin/api.mustache

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ public class {{classname}}(
5555
{{/hostsWithoutVariables.size}}
5656
}
5757

58+
/**
59+
* Helper method to switch the API key used to authenticate requests.
60+
*/
61+
public fun setApiKey(apiKey: String) {
62+
this.apiKey = apiKey
63+
this.requester.setApiKey(apiKey)
64+
}
65+
5866
{{#operation}}
5967

6068
/**

0 commit comments

Comments
 (0)