File tree Expand file tree Collapse file tree 14 files changed +32
-12
lines changed
client/src/commonMain/kotlin/com/algolia/client Expand file tree Collapse file tree 14 files changed +32
-12
lines changed Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class AbtestingClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
public val region : String? = null ,
16
16
override val options : ClientOptions = ClientOptions (),
17
17
) : ApiClient {
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class AnalyticsClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
public val region : String? = null ,
16
16
override val options : ClientOptions = ClientOptions (),
17
17
) : ApiClient {
Original file line number Diff line number Diff line change @@ -12,7 +12,15 @@ import com.algolia.client.transport.Requester
12
12
*/
13
13
public sealed interface ApiClient {
14
14
public val appId: String
15
- public val apiKey: String
15
+ public var apiKey: String
16
16
public val options: ClientOptions
17
17
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
+ }
18
26
}
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class IngestionClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
public val region : String ,
16
16
override val options : ClientOptions = ClientOptions (),
17
17
) : ApiClient {
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class InsightsClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
public val region : String? = null ,
16
16
override val options : ClientOptions = ClientOptions (),
17
17
) : ApiClient {
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class MonitoringClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
override val options : ClientOptions = ClientOptions (),
16
16
) : ApiClient {
17
17
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class PersonalizationClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
public val region : String ,
16
16
override val options : ClientOptions = ClientOptions (),
17
17
) : ApiClient {
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class QuerySuggestionsClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
public val region : String ,
16
16
override val options : ClientOptions = ClientOptions (),
17
17
) : ApiClient {
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class RecommendClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
override val options : ClientOptions = ClientOptions (),
16
16
) : ApiClient {
17
17
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class SearchClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
override val options : ClientOptions = ClientOptions (),
16
16
) : ApiClient {
17
17
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import kotlinx.serialization.json.*
11
11
12
12
public class UsageClient (
13
13
override val appId : String ,
14
- override val apiKey : String ,
14
+ override var apiKey : String ,
15
15
override val options : ClientOptions = ClientOptions (),
16
16
) : ApiClient {
17
17
Original file line number Diff line number Diff line change @@ -9,7 +9,7 @@ import io.ktor.client.request.*
9
9
import io.ktor.serialization.kotlinx.json.*
10
10
11
11
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"
13
13
14
14
internal fun algoliaHttpClient (
15
15
appId : String ,
Original file line number Diff line number Diff line change @@ -30,4 +30,6 @@ public interface Requester {
30
30
requestOptions : RequestOptions ? = null,
31
31
returnType : TypeInfo ,
32
32
): T
33
+
34
+ public fun setClientApiKey (apiKey : String )
33
35
}
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package com.algolia.client.transport.internal
2
2
3
3
import com.algolia.client.configuration.CallType
4
4
import com.algolia.client.configuration.Host
5
+ import com.algolia.client.configuration.internal.HEADER_APIKEY
5
6
import com.algolia.client.exception.AlgoliaRetryException
6
7
import com.algolia.client.exception.internal.asApiException
7
8
import com.algolia.client.exception.internal.asClientException
@@ -38,6 +39,15 @@ public class KtorRequester(
38
39
private val mutex: Mutex = Mutex ()
39
40
private val retryableHosts = hosts.map { RetryableHost (it) }
40
41
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
+
41
51
override suspend fun <T > execute (
42
52
requestConfig : RequestConfig ,
43
53
requestOptions : RequestOptions ? ,
You can’t perform that action at this time.
0 commit comments