Skip to content

Commit 6e71ebc

Browse files
algolia-botFluf22millotp
committed
feat(clients): endpoint level timeout part 2 [skip-bc] (generated)
algolia/api-clients-automation#4318 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Thomas Raffray <[email protected]> Co-authored-by: Pierre Millot <[email protected]>
1 parent 1ef4651 commit 6e71ebc

11 files changed

+94
-34
lines changed

src/main/scala/algoliasearch/api/AbtestingClient.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ object AbtestingClient {
5252
)
5353

5454
private def readTimeout(): Duration = {
55-
Duration(5, TimeUnit.SECONDS)
55+
Duration(5000, TimeUnit.MILLISECONDS)
5656
}
5757

5858
private def connectTimeout(): Duration = {
59-
Duration(2, TimeUnit.SECONDS)
59+
Duration(2000, TimeUnit.MILLISECONDS)
6060
}
6161

6262
private def writeTimeout(): Duration = {
63-
Duration(30, TimeUnit.SECONDS)
63+
Duration(30000, TimeUnit.MILLISECONDS)
6464
}
6565

6666
private def hosts(region: Option[String] = None): Seq[Host] = {

src/main/scala/algoliasearch/api/AnalyticsClient.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,15 @@ object AnalyticsClient {
6666
)
6767

6868
private def readTimeout(): Duration = {
69-
Duration(5, TimeUnit.SECONDS)
69+
Duration(5000, TimeUnit.MILLISECONDS)
7070
}
7171

7272
private def connectTimeout(): Duration = {
73-
Duration(2, TimeUnit.SECONDS)
73+
Duration(2000, TimeUnit.MILLISECONDS)
7474
}
7575

7676
private def writeTimeout(): Duration = {
77-
Duration(30, TimeUnit.SECONDS)
77+
Duration(30000, TimeUnit.MILLISECONDS)
7878
}
7979

8080
private def hosts(region: Option[String] = None): Seq[Host] = {

src/main/scala/algoliasearch/api/IngestionClient.scala

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,15 @@ object IngestionClient {
112112
)
113113

114114
private def readTimeout(): Duration = {
115-
Duration(25, TimeUnit.SECONDS)
115+
Duration(25000, TimeUnit.MILLISECONDS)
116116
}
117117

118118
private def connectTimeout(): Duration = {
119-
Duration(25, TimeUnit.SECONDS)
119+
Duration(25000, TimeUnit.MILLISECONDS)
120120
}
121121

122122
private def writeTimeout(): Duration = {
123-
Duration(25, TimeUnit.SECONDS)
123+
Duration(25000, TimeUnit.MILLISECONDS)
124124
}
125125

126126
private def hosts(region: String): Seq[Host] = {
@@ -1223,7 +1223,16 @@ class IngestionClient(
12231223
.withBody(pushTaskPayload)
12241224
.withQueryParameter("watch", watch)
12251225
.build()
1226-
execute[WatchResponse](request, requestOptions)
1226+
execute[WatchResponse](
1227+
request,
1228+
Some(
1229+
RequestOptions(
1230+
writeTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS)),
1231+
readTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS)),
1232+
connectTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS))
1233+
) + requestOptions
1234+
)
1235+
)
12271236
}
12281237

12291238
/** Runs all tasks linked to a source, only available for Shopify sources. It will create 1 run per task.
@@ -1453,7 +1462,16 @@ class IngestionClient(
14531462
.withMethod("POST")
14541463
.withPath(s"/1/sources/${escape(sourceID)}/discover")
14551464
.build()
1456-
execute[WatchResponse](request, requestOptions)
1465+
execute[WatchResponse](
1466+
request,
1467+
Some(
1468+
RequestOptions(
1469+
writeTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS)),
1470+
readTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS)),
1471+
connectTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS))
1472+
) + requestOptions
1473+
)
1474+
)
14571475
}
14581476

14591477
/** Try a transformation before creating it.
@@ -1676,7 +1694,16 @@ class IngestionClient(
16761694
.withPath(s"/1/sources/validate")
16771695
.withBody(sourceCreate)
16781696
.build()
1679-
execute[WatchResponse](request, requestOptions)
1697+
execute[WatchResponse](
1698+
request,
1699+
Some(
1700+
RequestOptions(
1701+
writeTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS)),
1702+
readTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS)),
1703+
connectTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS))
1704+
) + requestOptions
1705+
)
1706+
)
16801707
}
16811708

16821709
/** Validates an update of a source payload to ensure it can be created and that the data source can be reached by
@@ -1704,7 +1731,16 @@ class IngestionClient(
17041731
.withPath(s"/1/sources/${escape(sourceID)}/validate")
17051732
.withBody(sourceUpdate)
17061733
.build()
1707-
execute[WatchResponse](request, requestOptions)
1734+
execute[WatchResponse](
1735+
request,
1736+
Some(
1737+
RequestOptions(
1738+
writeTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS)),
1739+
readTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS)),
1740+
connectTimeout = Some(Duration(180000, TimeUnit.MILLISECONDS))
1741+
) + requestOptions
1742+
)
1743+
)
17081744
}
17091745

17101746
}

src/main/scala/algoliasearch/api/InsightsClient.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ object InsightsClient {
4646
)
4747

4848
private def readTimeout(): Duration = {
49-
Duration(5, TimeUnit.SECONDS)
49+
Duration(5000, TimeUnit.MILLISECONDS)
5050
}
5151

5252
private def connectTimeout(): Duration = {
53-
Duration(2, TimeUnit.SECONDS)
53+
Duration(2000, TimeUnit.MILLISECONDS)
5454
}
5555

5656
private def writeTimeout(): Duration = {
57-
Duration(30, TimeUnit.SECONDS)
57+
Duration(30000, TimeUnit.MILLISECONDS)
5858
}
5959

6060
private def hosts(region: Option[String] = None): Seq[Host] = {

src/main/scala/algoliasearch/api/MonitoringClient.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ object MonitoringClient {
5252
)
5353

5454
private def readTimeout(): Duration = {
55-
Duration(5, TimeUnit.SECONDS)
55+
Duration(5000, TimeUnit.MILLISECONDS)
5656
}
5757

5858
private def connectTimeout(): Duration = {
59-
Duration(2, TimeUnit.SECONDS)
59+
Duration(2000, TimeUnit.MILLISECONDS)
6060
}
6161

6262
private def writeTimeout(): Duration = {
63-
Duration(30, TimeUnit.SECONDS)
63+
Duration(30000, TimeUnit.MILLISECONDS)
6464
}
6565

6666
private def hosts(): Seq[Host] = {

src/main/scala/algoliasearch/api/PersonalizationClient.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ object PersonalizationClient {
4848
)
4949

5050
private def readTimeout(): Duration = {
51-
Duration(5, TimeUnit.SECONDS)
51+
Duration(5000, TimeUnit.MILLISECONDS)
5252
}
5353

5454
private def connectTimeout(): Duration = {
55-
Duration(2, TimeUnit.SECONDS)
55+
Duration(2000, TimeUnit.MILLISECONDS)
5656
}
5757

5858
private def writeTimeout(): Duration = {
59-
Duration(30, TimeUnit.SECONDS)
59+
Duration(30000, TimeUnit.MILLISECONDS)
6060
}
6161

6262
private def hosts(region: String): Seq[Host] = {

src/main/scala/algoliasearch/api/QuerySuggestionsClient.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ object QuerySuggestionsClient {
5050
)
5151

5252
private def readTimeout(): Duration = {
53-
Duration(5, TimeUnit.SECONDS)
53+
Duration(5000, TimeUnit.MILLISECONDS)
5454
}
5555

5656
private def connectTimeout(): Duration = {
57-
Duration(2, TimeUnit.SECONDS)
57+
Duration(2000, TimeUnit.MILLISECONDS)
5858
}
5959

6060
private def writeTimeout(): Duration = {
61-
Duration(30, TimeUnit.SECONDS)
61+
Duration(30000, TimeUnit.MILLISECONDS)
6262
}
6363

6464
private def hosts(region: String): Seq[Host] = {

src/main/scala/algoliasearch/api/RecommendClient.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ object RecommendClient {
5050
)
5151

5252
private def readTimeout(): Duration = {
53-
Duration(5, TimeUnit.SECONDS)
53+
Duration(5000, TimeUnit.MILLISECONDS)
5454
}
5555

5656
private def connectTimeout(): Duration = {
57-
Duration(2, TimeUnit.SECONDS)
57+
Duration(2000, TimeUnit.MILLISECONDS)
5858
}
5959

6060
private def writeTimeout(): Duration = {
61-
Duration(30, TimeUnit.SECONDS)
61+
Duration(30000, TimeUnit.MILLISECONDS)
6262
}
6363

6464
private def hosts(appId: String): Seq[Host] = {

src/main/scala/algoliasearch/api/SearchClient.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,15 +107,15 @@ object SearchClient {
107107
)
108108

109109
private def readTimeout(): Duration = {
110-
Duration(5, TimeUnit.SECONDS)
110+
Duration(5000, TimeUnit.MILLISECONDS)
111111
}
112112

113113
private def connectTimeout(): Duration = {
114-
Duration(2, TimeUnit.SECONDS)
114+
Duration(2000, TimeUnit.MILLISECONDS)
115115
}
116116

117117
private def writeTimeout(): Duration = {
118-
Duration(30, TimeUnit.SECONDS)
118+
Duration(30000, TimeUnit.MILLISECONDS)
119119
}
120120

121121
private def hosts(appId: String): Seq[Host] = {

src/main/scala/algoliasearch/config/RequestOptions.scala

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,27 @@ import scala.concurrent.duration.Duration
1616
* HTTP read timeout
1717
* @param writeTimeout
1818
* HTTP write timeout
19+
* @param connectTimeout
20+
* HTTP connect timeout
1921
*/
2022
case class RequestOptions(
2123
headers: Map[String, String] = Map.empty,
2224
queryParameters: Map[String, String] = Map.empty,
2325
readTimeout: Option[Duration] = None,
24-
writeTimeout: Option[Duration] = None
25-
)
26+
writeTimeout: Option[Duration] = None,
27+
connectTimeout: Option[Duration] = None
28+
) {
29+
def +(other: Option[RequestOptions]): RequestOptions = {
30+
val some = other.getOrElse(return this)
31+
new RequestOptions(
32+
headers = this.headers ++ some.headers,
33+
queryParameters = this.queryParameters ++ some.queryParameters,
34+
readTimeout = some.readTimeout.orElse(this.readTimeout),
35+
writeTimeout = some.writeTimeout.orElse(this.writeTimeout),
36+
connectTimeout = some.connectTimeout.orElse(this.connectTimeout)
37+
)
38+
}
39+
}
2640

2741
object RequestOptions {
2842

@@ -33,6 +47,7 @@ object RequestOptions {
3347
private val queryParameters: mutable.Map[String, String] = mutable.Map()
3448
private var readTimeout: Option[Duration] = None
3549
private var writeTimeout: Option[Duration] = None
50+
private var connectTimeout: Option[Duration] = None
3651

3752
/** Adds a header to the request.
3853
*/
@@ -62,14 +77,22 @@ object RequestOptions {
6277
this
6378
}
6479

80+
/** Sets the write timeout for the request.
81+
*/
82+
def withConnectTimeout(connectTimeout: Option[Duration]): Builder = {
83+
this.connectTimeout = connectTimeout
84+
this
85+
}
86+
6587
/** Builds the [[RequestOptions]].
6688
*/
6789
def build(): RequestOptions = {
6890
RequestOptions(
6991
headers = headers.toMap,
7092
queryParameters = queryParameters.toMap,
7193
readTimeout = readTimeout,
72-
writeTimeout = writeTimeout
94+
writeTimeout = writeTimeout,
95+
connectTimeout = connectTimeout
7396
)
7497
}
7598
}

0 commit comments

Comments
 (0)