Skip to content

Commit 320502c

Browse files
committed
feat(java): switch api key helper
1 parent 1d18815 commit 320502c

File tree

4 files changed

+19
-1
lines changed

4 files changed

+19
-1
lines changed

clients/algoliasearch-client-java/algoliasearch/src/main/java/com/algolia/ApiClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
*/
2525
public abstract class ApiClient implements Closeable {
2626

27-
private final Requester requester;
27+
protected final Requester requester;
2828
private final ExecutorService executor;
2929

3030
/** Constructs a new instance of the {@link ApiClient}. */

clients/algoliasearch-client-java/algoliasearch/src/main/java/com/algolia/config/Requester.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,8 @@ public interface Requester extends Closeable {
3131
* @return The deserialized response.
3232
*/
3333
<T> T execute(HttpRequest httpRequest, RequestOptions requestOptions, TypeReference<?> returnType);
34+
35+
default void setApiKey(String apiKey) {
36+
System.out.println("Nothing to do here");
37+
}
3438
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ public <T> T execute(HttpRequest httpRequest, RequestOptions requestOptions, Typ
6060
return execute(httpRequest, requestOptions, serializer.getJavaType(returnType));
6161
}
6262

63+
@Override
64+
public void setApiKey(@Nonnull String apiKey) {
65+
this.httpClient.interceptors().add(new HeaderInterceptor(Collections.singletonMap("X-Algolia-API-Key", apiKey)));
66+
}
67+
6368
/** Core method to execute an HTTP request and handle the response. */
6469
private <T> T execute(@Nonnull HttpRequest httpRequest, RequestOptions requestOptions, JavaType returnType) {
6570
if (isClosed.get()) {

templates/java/api.mustache

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,15 @@ public class {{classname}} extends ApiClient {
130130
}
131131
{{/hostsWithoutVariables.size}}
132132

133+
/**
134+
* Helper method to switch the API key used to authenticate the requests.
135+
*
136+
* @param apiKey The new API key to be used from now on.
137+
*/
138+
public void setApiKey(@Nonnull String apiKey) {
139+
this.requester.setApiKey(apiKey);
140+
}
141+
133142
{{#operation}}
134143
/**
135144
* {{{notes}}}{{#allParams}}

0 commit comments

Comments
 (0)