Skip to content

Commit c20f07b

Browse files
committed
fix: scala
1 parent c0f13a5 commit c20f07b

File tree

3 files changed

+25
-9
lines changed

3 files changed

+25
-9
lines changed

clients/algoliasearch-client-scala/src/main/scala/algoliasearch/ApiClient.scala

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import algoliasearch.internal.interceptor.{AuthInterceptor, RetryStrategy, UserA
66
import algoliasearch.internal.{AlgoliaAgent, HttpRequester, StatefulHost}
77
import org.json4s.Formats
88

9+
import java.util.concurrent.TimeUnit
10+
import scala.concurrent.duration.Duration
911
import scala.util.Try
1012

1113
/** Base class for all API clients. It provides a mechanism for request serialization and deserialization. It also
@@ -35,6 +37,9 @@ abstract class ApiClient(
3537
apiKey: String,
3638
clientName: String,
3739
defaultHosts: Seq[Host],
40+
defaultReadTimeout: Duration,
41+
defaultConnectTimeout: Duration,
42+
defaultWriteTimeout: Duration,
3843
formats: Formats,
3944
options: ClientOptions = ClientOptions()
4045
) extends AutoCloseable {
@@ -51,7 +56,16 @@ abstract class ApiClient(
5156
private val requester = options.customRequester match {
5257
case Some(customRequester) => customRequester
5358
case None =>
54-
defaultRequester(appId, apiKey, clientName, options, defaultHosts)
59+
defaultRequester(
60+
appId,
61+
apiKey,
62+
clientName,
63+
options,
64+
defaultHosts,
65+
defaultReadTimeout,
66+
defaultConnectTimeout,
67+
defaultWriteTimeout
68+
)
5569
}
5670

5771
private def defaultRequester(
@@ -69,13 +83,10 @@ abstract class ApiClient(
6983
.addSegments(options.agentSegments)
7084

7185
val hosts = if (options.hosts.isEmpty) defaultHosts else options.hosts
72-
73-
option.readTimeout = Option(options.readTimeout).getOrElse(defaultReadTimeout)
74-
option.writeTimeout = Option(options.writeTimeout).getOrElse(defaultWriteTimeout)
75-
option.connectTimeout = Option(options.connectTimeout).getOrElse(defaultConnectTimeout)
76-
7786
val statefulHosts = hosts.map(host => StatefulHost(host)).toList
7887

88+
options.withReadTimeout(Option(options.readTimeout).getOrElse(defaultReadTimeout)).withWriteTimeout(Option(options.writeTimeout).getOrElse(defaultWriteTimeout)).withConnectTimeout(Option(options.connectTimeout).getOrElse(defaultConnectTimeout))
89+
7990
val builder = HttpRequester
8091
.builder(options.customFormats.getOrElse(formats))
8192
.withInterceptor(authInterceptor)

clients/algoliasearch-client-scala/src/main/scala/algoliasearch/config/ClientOptions.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ import scala.concurrent.duration.Duration
3434
case class ClientOptions(
3535
agentSegments: Seq[AgentSegment] = Seq.empty,
3636
hosts: Seq[Host] = Seq.empty,
37-
connectTimeout: Option[Duration] = Duration(2, TimeUnit.SECONDS),
38-
writeTimeout: Option[Duration] = Duration(30, TimeUnit.SECONDS),
39-
readTimeout: Option[Duration] = Duration(5, TimeUnit.SECONDS),
37+
connectTimeout: Duration = Duration(2, TimeUnit.SECONDS),
38+
writeTimeout: Duration = Duration(30, TimeUnit.SECONDS),
39+
readTimeout: Duration = Duration(5, TimeUnit.SECONDS),
4040
defaultHeaders: Map[String, String] = Map.empty,
4141
compressionType: CompressionType = CompressionType.None,
4242
logging: Option[Logging] = None,

templates/scala/api.mustache

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,14 @@ import {{import}}
99
import {{modelPackage}}._
1010
import algoliasearch.ApiClient
1111
import algoliasearch.api.{{classname}}.hosts
12+
import algoliasearch.api.{{classname}}.readTimeout
13+
import algoliasearch.api.{{classname}}.writeTimeout
14+
import algoliasearch.api.{{classname}}.connectTimeout
1215
import algoliasearch.config._
1316
import algoliasearch.internal.util._
1417

18+
import java.util.concurrent.TimeUnit
19+
import scala.concurrent.duration.Duration
1520
import scala.concurrent.{ExecutionContext, Future}
1621
import scala.util.Random
1722

0 commit comments

Comments
 (0)