Skip to content

Commit 4f64d5f

Browse files
authored
fix(clients): use the dsn with the read transporter (#3781)
1 parent 853786a commit 4f64d5f

File tree

4 files changed

+38
-6
lines changed

4 files changed

+38
-6
lines changed

clients/algoliasearch-client-java/algoliasearch/src/main/java/com/algolia/internal/HttpRequester.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import okhttp3.*;
1919
import okhttp3.internal.http.HttpMethod;
2020
import okio.BufferedSink;
21+
import com.algolia.utils.UseReadTransporter;
2122

2223
/**
2324
* HttpRequester is responsible for making HTTP requests using the OkHttp client. It provides a
@@ -72,7 +73,12 @@ private <T> T execute(@Nonnull HttpRequest httpRequest, RequestOptions requestOp
7273
RequestBody requestBody = createRequestBody(httpRequest);
7374

7475
// Build the HTTP request.
75-
Request request = new Request.Builder().url(url).headers(headers).method(httpRequest.getMethod(), requestBody).build();
76+
Request.Builder requestBuilder = new Request.Builder().url(url).headers(headers).method(httpRequest.getMethod(), requestBody);
77+
if (httpRequest.isRead()) {
78+
requestBuilder.tag(new UseReadTransporter());
79+
}
80+
81+
Request request = requestBuilder.build();
7682

7783
// Get or adjust the HTTP client according to request options.
7884
OkHttpClient client = getOkHttpClient(requestOptions);

clients/algoliasearch-client-scala/src/main/scala/algoliasearch/internal/HttpRequester.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import algoliasearch.config._
44
import algoliasearch.exception.{AlgoliaApiException, AlgoliaClientException}
55
import algoliasearch.internal.interceptor.{GzipRequestInterceptor, HeaderInterceptor, LogInterceptor}
66
import algoliasearch.internal.util.escape
7+
import algoliasearch.internal.util.UseReadTransporter
78
import okhttp3._
89
import okhttp3.internal.http.HttpMethod
910
import okio.BufferedSink
@@ -140,11 +141,12 @@ private[algoliasearch] class HttpRequester private (
140141
val headers = createHeaders(httpRequest, requestOptions)
141142
val requestBody = createRequestBody(httpRequest)
142143
// Build the HTTP request.
143-
val request = new Request.Builder()
144+
val requestBuilder = new Request.Builder()
144145
.url(url)
145146
.headers(headers)
146147
.method(httpRequest.method, requestBody)
147-
.build
148+
if (httpRequest.read) requestBuilder.tag(UseReadTransporter)
149+
val request = requestBuilder.build
148150
// Get or adjust the HTTP client according to request options.
149151
val client = okHttpClient(requestOptions)
150152
// Execute the request.

templates/java/api.mustache

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ public class {{classname}} extends ApiClient {
8585
hosts.add(new Host(appId + ".algolia.net", EnumSet.of(CallType.WRITE)));
8686
8787
List<Host> commonHosts = new ArrayList<>();
88-
hosts.add(new Host(appId + "-1.algolianet.net", EnumSet.of(CallType.READ, CallType.WRITE)));
89-
hosts.add(new Host(appId + "-2.algolianet.net", EnumSet.of(CallType.READ, CallType.WRITE)));
90-
hosts.add(new Host(appId + "-3.algolianet.net", EnumSet.of(CallType.READ, CallType.WRITE)));
88+
commonHosts.add(new Host(appId + "-1.algolianet.net", EnumSet.of(CallType.READ, CallType.WRITE)));
89+
commonHosts.add(new Host(appId + "-2.algolianet.net", EnumSet.of(CallType.READ, CallType.WRITE)));
90+
commonHosts.add(new Host(appId + "-3.algolianet.net", EnumSet.of(CallType.READ, CallType.WRITE)));
9191
9292
Collections.shuffle(commonHosts, new Random());
9393

tests/CTS/client/search/api.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,30 @@
2323
}
2424
]
2525
},
26+
{
27+
"testName": "read transporter with POST method",
28+
"autoCreateClient": false,
29+
"steps": [
30+
{
31+
"type": "createClient",
32+
"parameters": {
33+
"appId": "test-app-id",
34+
"apiKey": "test-api-key"
35+
}
36+
},
37+
{
38+
"type": "method",
39+
"method": "searchSingleIndex",
40+
"parameters": {
41+
"indexName": "indexName"
42+
},
43+
"expected": {
44+
"type": "host",
45+
"match": "test-app-id-dsn.algolia.net"
46+
}
47+
}
48+
]
49+
},
2650
{
2751
"testName": "calls api with correct write host",
2852
"autoCreateClient": false,

0 commit comments

Comments
 (0)