Skip to content

Commit d6571f2

Browse files
algolia-botFluf22millotp
committed
feat(clients): helper to switch API key in use (generated)
algolia/api-clients-automation#3616 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Thomas Raffray <[email protected]> Co-authored-by: Pierre Millot <[email protected]>
1 parent d1baee8 commit d6571f2

File tree

14 files changed

+32
-12
lines changed

14 files changed

+32
-12
lines changed

client/src/commonMain/kotlin/com/algolia/client/api/AbtestingClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class AbtestingClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
public val region: String? = null,
1616
override val options: ClientOptions = ClientOptions(),
1717
) : ApiClient {

client/src/commonMain/kotlin/com/algolia/client/api/AnalyticsClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class AnalyticsClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
public val region: String? = null,
1616
override val options: ClientOptions = ClientOptions(),
1717
) : ApiClient {

client/src/commonMain/kotlin/com/algolia/client/api/ApiClient.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,15 @@ import com.algolia.client.transport.Requester
1212
*/
1313
public sealed interface ApiClient {
1414
public val appId: String
15-
public val apiKey: String
15+
public var apiKey: String
1616
public val options: ClientOptions
1717
public val requester: Requester
18+
19+
/**
20+
* Helper method to switch the API key used to authenticate requests.
21+
*/
22+
public fun setClientApiKey(apiKey: String) {
23+
this.apiKey = apiKey
24+
this.requester.setClientApiKey(apiKey)
25+
}
1826
}

client/src/commonMain/kotlin/com/algolia/client/api/IngestionClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class IngestionClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
public val region: String,
1616
override val options: ClientOptions = ClientOptions(),
1717
) : ApiClient {

client/src/commonMain/kotlin/com/algolia/client/api/InsightsClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class InsightsClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
public val region: String? = null,
1616
override val options: ClientOptions = ClientOptions(),
1717
) : ApiClient {

client/src/commonMain/kotlin/com/algolia/client/api/MonitoringClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class MonitoringClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
override val options: ClientOptions = ClientOptions(),
1616
) : ApiClient {
1717

client/src/commonMain/kotlin/com/algolia/client/api/PersonalizationClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class PersonalizationClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
public val region: String,
1616
override val options: ClientOptions = ClientOptions(),
1717
) : ApiClient {

client/src/commonMain/kotlin/com/algolia/client/api/QuerySuggestionsClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class QuerySuggestionsClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
public val region: String,
1616
override val options: ClientOptions = ClientOptions(),
1717
) : ApiClient {

client/src/commonMain/kotlin/com/algolia/client/api/RecommendClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class RecommendClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
override val options: ClientOptions = ClientOptions(),
1616
) : ApiClient {
1717

client/src/commonMain/kotlin/com/algolia/client/api/SearchClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class SearchClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
override val options: ClientOptions = ClientOptions(),
1616
) : ApiClient {
1717

client/src/commonMain/kotlin/com/algolia/client/api/UsageClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
1111

1212
public class UsageClient(
1313
override val appId: String,
14-
override val apiKey: String,
14+
override var apiKey: String,
1515
override val options: ClientOptions = ClientOptions(),
1616
) : ApiClient {
1717

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,

client/src/commonMain/kotlin/com/algolia/client/transport/Requester.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,6 @@ public interface Requester {
3030
requestOptions: RequestOptions? = null,
3131
returnType: TypeInfo,
3232
): T
33+
34+
public fun setClientApiKey(apiKey: String)
3335
}

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

Lines changed: 10 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,15 @@ public class KtorRequester(
3839
private val mutex: Mutex = Mutex()
3940
private val retryableHosts = hosts.map { RetryableHost(it) }
4041

42+
public override fun setClientApiKey(apiKey: String) {
43+
headers {
44+
if (contains(HEADER_APIKEY)) {
45+
remove(HEADER_APIKEY)
46+
}
47+
append(HEADER_APIKEY, apiKey)
48+
}
49+
}
50+
4151
override suspend fun <T> execute(
4252
requestConfig: RequestConfig,
4353
requestOptions: RequestOptions?,

0 commit comments

Comments
 (0)