Skip to content

Commit 30b59fc

Browse files
committed
fix(model-client): make HTTP timeouts configurable in the builder
1 parent f54cdb3 commit 30b59fc

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

model-client/src/commonMain/kotlin/org/modelix/model/client2/ModelClientV2.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import org.modelix.model.persistent.MapBasedStore
5656
import org.modelix.model.server.api.v2.VersionDelta
5757
import org.modelix.modelql.client.ModelQLClient
5858
import org.modelix.modelql.core.IMonoStep
59+
import kotlin.time.Duration
5960
import kotlin.time.Duration.Companion.seconds
6061

6162
class ModelClientV2(
@@ -338,6 +339,8 @@ abstract class ModelClientV2Builder {
338339
protected var baseUrl: String = "https://localhost/model/v2"
339340
protected var authTokenProvider: (() -> String?)? = null
340341
protected var userId: String? = null
342+
protected var connectTimeout: Duration = 1.seconds
343+
protected var requestTimeout: Duration = 30.seconds
341344

342345
fun build(): ModelClientV2 {
343346
return ModelClientV2(
@@ -367,6 +370,16 @@ abstract class ModelClientV2Builder {
367370
return this
368371
}
369372

373+
fun connectTimeout(timeout: Duration): ModelClientV2Builder {
374+
this.connectTimeout = timeout
375+
return this
376+
}
377+
378+
fun requestTimeout(timeout: Duration): ModelClientV2Builder {
379+
this.requestTimeout = timeout
380+
return this
381+
}
382+
370383
protected open fun configureHttpClient(config: HttpClientConfig<*>) {
371384
config.apply {
372385
expectSuccess = true
@@ -375,8 +388,8 @@ abstract class ModelClientV2Builder {
375388
json()
376389
}
377390
install(HttpTimeout) {
378-
connectTimeoutMillis = 1.seconds.inWholeMilliseconds
379-
requestTimeoutMillis = 30.seconds.inWholeMilliseconds
391+
connectTimeoutMillis = connectTimeout.inWholeMilliseconds
392+
requestTimeoutMillis = requestTimeout.inWholeMilliseconds
380393
}
381394
install(HttpRequestRetry) {
382395
retryOnExceptionOrServerErrors(maxRetries = 3)

0 commit comments

Comments
 (0)