Skip to content

Commit 59c2328

Browse files
committed
fix: update how a session token is applied
1 parent 3967e66 commit 59c2328

File tree

2 files changed

+8
-16
lines changed

2 files changed

+8
-16
lines changed

src/main/kotlin/com/ctrlhub/core/Api.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,23 @@ package com.ctrlhub.core
22

33
import com.ctrlhub.core.http.KtorClientFactory
44
import io.ktor.client.*
5+
import io.ktor.client.plugins.defaultRequest
56

67
/**
78
* The facade object through which interaction with the API occurs.
89
*/
910
class Api(
1011
var httpClient: HttpClient = KtorClientFactory.create()
1112
) {
12-
private var sessionToken: String? = null
13-
1413
fun withHttpClientConfig(config: HttpClientConfig<*>.() -> Unit) {
1514
httpClient = KtorClientFactory.create(configBlock = config)
1615
}
1716

18-
fun applySessionToken(newSessionToken: String) {
19-
sessionToken = newSessionToken
20-
httpClient = KtorClientFactory.createWithExistingConfig(httpClient, newSessionToken)
17+
fun applySessionToken(sessionToken: String) {
18+
httpClient = KtorClientFactory.create(httpClient) {
19+
defaultRequest {
20+
headers.append("X-Session-Token", sessionToken)
21+
}
22+
}
2123
}
2224
}

src/main/kotlin/com/ctrlhub/core/http/KtorClientFactory.kt

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,18 @@ import java.util.concurrent.atomic.AtomicReference
2121
object KtorClientFactory {
2222
fun create(
2323
httpClient: HttpClient = HttpClient(CIO),
24-
sessionToken: String? = null,
2524
configBlock: HttpClientConfig<*>.() -> Unit = {}
2625
): HttpClient {
27-
return configureHttpClient(httpClient, sessionToken, configBlock)
28-
}
29-
30-
fun createWithExistingConfig(
31-
existingClient: HttpClient,
32-
sessionToken: String? = null
33-
): HttpClient {
34-
return configureHttpClient(existingClient, sessionToken)
26+
return configureHttpClient(httpClient, configBlock)
3527
}
3628

3729
private fun configureHttpClient(
3830
baseClient: HttpClient,
39-
sessionToken: String? = null,
4031
configBlock: HttpClientConfig<*>.() -> Unit = {}
4132
): HttpClient {
4233
return baseClient.config {
4334
defaultRequest {
4435
url(Config.apiBaseUrl)
45-
sessionToken?.let { headers.append("X-Session-Token", it) }
4636
headers.appendIfNameAbsent(HttpHeaders.ContentType, "application/json")
4737
}
4838
expectSuccess = true

0 commit comments

Comments
 (0)