Skip to content

Commit 8e3f052

Browse files
committed
refactor(http-client): use lambda for queryParams
This change modifies the `queryParams` in `ClientFeatures` to be a lambda expression. This allows for deferred evaluation of the query parameters, which can be useful in scenarios where the parameters need to be dynamically generated or fetched. It also modifies the usage to invoke the lambda to get the query params map.
1 parent ea6bf0a commit 8e3f052

File tree

6 files changed

+6
-7
lines changed

6 files changed

+6
-7
lines changed

common/src/commonMain/kotlin/com/tddworks/common/network/api/ktor/internal/ClientFeatures.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ import kotlinx.serialization.json.Json
44

55
data class ClientFeatures(
66
val json: Json = Json,
7-
val queryParams: Map<String, String> = emptyMap(),
7+
val queryParams: () -> Map<String, String> = { emptyMap() },
88
val expectSuccess: Boolean = true
99
)

common/src/commonMain/kotlin/com/tddworks/common/network/api/ktor/internal/HttpClient.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ fun createHttpClient(
5151
}
5252

5353
private fun DefaultRequest.DefaultRequestBuilder.commonSettings(
54-
queryParams: Map<String, String>,
54+
queryParams: (() -> Map<String, String>),
5555
authToken: (() -> String)?
5656
) {
57-
queryParams.forEach { (key, value) ->
57+
queryParams().forEach { (key, value) ->
5858
url.parameters.appendIfNameAbsent(
5959
key,
6060
value

common/src/jvmTest/kotlin/com/tddworks/common/network/api/ktor/internal/HttpClientTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class HttpClientTest {
3737
httpClientEngine = mockEngine,
3838
authConfig = AuthConfig(authToken = { "token" }),
3939
features = ClientFeatures(
40-
queryParams = mapOf("key" to "value"),
40+
queryParams = { mapOf("key" to "value") },
4141
)
4242
)
4343

gemini-client/gemini-client-core/src/commonMain/kotlin/com/tddworks/gemini/di/GeminiModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class GeminiModule {
2424
connectionConfig = UrlBasedConnectionConfig(config.baseUrl),
2525
features = ClientFeatures(
2626
json = createJson(),
27-
queryParams = mapOf("key" to config.apiKey())
27+
queryParams = { mapOf("key" to config.apiKey()) }
2828
)
2929
)
3030
)

openai-gateway/openai-gateway-core/src/commonMain/kotlin/com/tddworks/azure/api/AzureAI.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ fun OpenAI.Companion.azure(config: AzureAIProviderConfig): OpenAI {
5252
connectionConfig = UrlBasedConnectionConfig { "${config.baseUrl()}/openai/deployments/${config.deploymentId()}/" },
5353
features = ClientFeatures(
5454
json = createJson(),
55-
queryParams = mapOf("api-version" to config.apiVersion())
55+
queryParams = { mapOf("api-version" to config.apiVersion()) }
5656
)
5757
)
5858
)

openai-gateway/openai-gateway-core/src/commonMain/kotlin/com/tddworks/openai/gateway/api/internal/GeminiOpenAIProviderConfig.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.tddworks.openai.gateway.api.internal
22

3-
import com.tddworks.anthropic.api.Anthropic
43
import com.tddworks.gemini.api.textGeneration.api.Gemini
54
import com.tddworks.gemini.api.textGeneration.api.GeminiConfig
65
import com.tddworks.openai.gateway.api.OpenAIProviderConfig

0 commit comments

Comments
 (0)