Skip to content

Commit a1fa5cf

Browse files
committed
feat: ruby php python
1 parent 3ddc750 commit a1fa5cf

File tree

7 files changed

+46
-25
lines changed

7 files changed

+46
-25
lines changed

clients/algoliasearch-client-python/algoliasearch/http/base_config.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ def __init__(self, app_id: Optional[str] = None, api_key: Optional[str] = None):
1818
self.app_id = str(app_id)
1919
self.api_key = str(api_key)
2020

21+
# In milliseconds
22+
self.read_timeout = 5000
23+
self.write_timeout = 30000
24+
self.connect_timeout = 2000
25+
2126
self.wait_task_time_before_retry: Optional[int] = None
2227
self.headers: Optional[Dict[str, str]] = None
2328
self.proxies: Optional[Dict[str, str]] = None

generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import io.swagger.v3.oas.models.OpenAPI;
66
import io.swagger.v3.oas.models.Operation;
77
import io.swagger.v3.oas.models.servers.Server;
8-
import java.util.List;
8+
import java.util.*;
99
import org.openapitools.codegen.CodegenOperation;
1010
import org.openapitools.codegen.SupportingFile;
1111
import org.openapitools.codegen.languages.PhpClientCodegen;
@@ -68,6 +68,7 @@ public void processOpts() {
6868
public void processOpenAPI(OpenAPI openAPI) {
6969
super.processOpenAPI(openAPI);
7070
Helpers.generateServers(super.fromServers(openAPI.getServers()), additionalProperties);
71+
Timeouts.enrichBundle((HashMap<String, Object>) openAPI.getExtensions().get("x-timeouts"), additionalProperties, 1000);
7172
}
7273

7374
@Override

generators/src/main/java/com/algolia/codegen/AlgoliaPythonGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public void processOpts() {
9494
public void processOpenAPI(OpenAPI openAPI) {
9595
super.processOpenAPI(openAPI);
9696
Helpers.generateServers(super.fromServers(openAPI.getServers()), additionalProperties);
97+
Timeouts.enrichBundle((HashMap<String, Object>) openAPI.getExtensions().get("x-timeouts"), additionalProperties);
9798
}
9899

99100
@Override

generators/src/main/java/com/algolia/codegen/AlgoliaRubyGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public void processOpts() {
7272
public void processOpenAPI(OpenAPI openAPI) {
7373
super.processOpenAPI(openAPI);
7474
Helpers.generateServers(super.fromServers(openAPI.getServers()), additionalProperties);
75+
Timeouts.enrichBundle((HashMap<String, Object>) openAPI.getExtensions().get("x-timeouts"), additionalProperties);
7576
}
7677

7778
@Override

generators/src/main/java/com/algolia/codegen/utils/Timeouts.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,15 @@
66

77
public class Timeouts {
88

9-
/** Inject timeouts info into the client bundle at x-timeouts */
109
public static void enrichBundle(HashMap<String, Object> timeouts, Map<String, Object> bundle) throws ConfigException {
10+
enrichBundle(timeouts, bundle, 1);
11+
}
12+
13+
/**
14+
* Inject timeouts (in miliseconds / divider) into the given bundle, under the x-timeouts property
15+
* *
16+
*/
17+
public static void enrichBundle(HashMap<String, Object> timeouts, Map<String, Object> bundle, int divider) throws ConfigException {
1118
HashMap<String, Object> xtimeouts = new HashMap<>();
1219

1320
HashMap<String, Object> browser = new HashMap<>();
@@ -18,6 +25,7 @@ public static void enrichBundle(HashMap<String, Object> timeouts, Map<String, Ob
1825
server = (HashMap<String, Object>) timeouts.getOrDefault("server", new HashMap<>());
1926
}
2027

28+
// the default below are what the search API expect, which was previously used for any client
2129
HashMap<String, Object> defaultBrowser = new HashMap<>();
2230
defaultBrowser.put("connect", 1000);
2331
defaultBrowser.put("read", 2000);
@@ -31,18 +39,18 @@ public static void enrichBundle(HashMap<String, Object> timeouts, Map<String, Ob
3139
if (browser == null) {
3240
xtimeouts.put("browser", defaultBrowser);
3341
} else {
34-
browser.put("connect", browser.getOrDefault("connect", defaultBrowser.get("connect")));
35-
browser.put("read", browser.getOrDefault("read", defaultBrowser.get("read")));
36-
browser.put("write", browser.getOrDefault("write", defaultBrowser.get("write")));
42+
browser.put("connect", ((int) browser.getOrDefault("connect", defaultBrowser.get("connect"))) / divider);
43+
browser.put("read", ((int) browser.getOrDefault("read", defaultBrowser.get("read"))) / divider);
44+
browser.put("write", ((int) browser.getOrDefault("write", defaultBrowser.get("write"))) / divider);
3745
xtimeouts.put("browser", browser);
3846
}
3947

4048
if (server == null) {
4149
xtimeouts.put("server", defaultServer);
4250
} else {
43-
server.put("connect", server.getOrDefault("connect", defaultServer.get("connect")));
44-
server.put("read", server.getOrDefault("read", defaultServer.get("read")));
45-
server.put("write", server.getOrDefault("write", defaultServer.get("write")));
51+
server.put("connect", ((int) server.getOrDefault("connect", defaultServer.get("connect"))) / divider);
52+
server.put("read", ((int) server.getOrDefault("read", defaultServer.get("read"))) / divider);
53+
server.put("write", ((int) server.getOrDefault("write", defaultServer.get("write"))) / divider);
4654
xtimeouts.put("server", server);
4755
}
4856

templates/php/client_config.mustache

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,32 +43,34 @@ class {{configClassname}} extends {{#hasRegionalHost}}ConfigWithRegion{{/hasRegi
4343
return new static($config);
4444
}
4545

46+
public function getWaitTaskTimeBeforeRetry()
47+
{
48+
return $this->config['waitTaskTimeBeforeRetry'];
49+
}
50+
51+
public function getDefaultMaxRetries()
52+
{
53+
return $this->config['defaultMaxRetries'];
54+
}
55+
{{/isSearchClient}}
56+
4657
public function getDefaultConfiguration()
4758
{
4859
return [
4960
'appId' => '',
5061
'apiKey' => '',
5162
'hosts' => null,
5263
'hasFullHosts' => false,
53-
'readTimeout' => $this->defaultReadTimeout,
54-
'writeTimeout' => $this->defaultWriteTimeout,
55-
'connectTimeout' => $this->defaultConnectTimeout,
64+
'readTimeout' => {{#x-timeouts.server.read}}{{{.}}}{{/x-timeouts.server.read}},
65+
'writeTimeout' => {{#x-timeouts.server.write}}{{{.}}}{{/x-timeouts.server.write}},
66+
'connectTimeout' => {{#x-timeouts.server.connect}}{{{.}}}{{/x-timeouts.server.connect}},
67+
'defaultHeaders' => [],
68+
{{#isSearchClient}}
5669
'waitTaskTimeBeforeRetry' => $this->defaultWaitTaskTimeBeforeRetry,
5770
'defaultMaxRetries' => $this->defaultMaxRetries,
58-
'defaultHeaders' => [],
5971
'defaultForwardToReplicas' => null,
6072
'batchSize' => 1000,
73+
{{/isSearchClient}}
6174
];
6275
}
63-
64-
public function getWaitTaskTimeBeforeRetry()
65-
{
66-
return $this->config['waitTaskTimeBeforeRetry'];
67-
}
68-
69-
public function getDefaultMaxRetries()
70-
{
71-
return $this->config['defaultMaxRetries'];
72-
}
73-
{{/isSearchClient}}
74-
}
76+
}

templates/ruby/api.mustache

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ module {{moduleName}}
2525

2626
if region.is_a?(Hash) && (opts.nil? || opts.empty?)
2727
opts = region
28+
opts.read_timeout = {{#x-timeouts.server.read}}{{{.}}}{{/x-timeouts.server.read}}
29+
opts.write_timeout = {{#x-timeouts.server.write}}{{{.}}}{{/x-timeouts.server.write}}
30+
opts.connect_timeout = {{#x-timeouts.server.connect}}{{{.}}}{{/x-timeouts.server.connect}}
2831
region = nil
2932
end
3033

@@ -175,4 +178,4 @@ module {{moduleName}}
175178
{{/isSearchClient}}
176179
end
177180
{{/operations}}
178-
end
181+
end

0 commit comments

Comments
 (0)