Skip to content
This repository was archived by the owner on Apr 1, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .fernignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ src/main/java/com/assemblyai/api/resources/realtime/types/RealtimeMessage.java
src/main/java/com/assemblyai/api/resources/realtime/types/SessionBegins.java
src/main/java/com/assemblyai/api/resources/realtime/types/SessionTerminated.java

# Ignore ClientOptions to support custom timeouts for LeMUR.
src/main/java/com/assemblyai/api/AssemblyAIBuilder.java
src/main/java/com/assemblyai/api/core/ClientOptions.java

sample-app/src/main/java/sample/App.java
sample-app/src/main/resources/

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ publishing {
maven(MavenPublication) {
groupId = 'com.assemblyai'
artifactId = 'assemblyai-java'
version = '1.0.9'
version = '1.0.8'
from components.java
}
}
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/com/assemblyai/api/AssemblyAIBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

public final class AssemblyAIBuilder {
private ClientOptions.Builder clientOptionsBuilder = ClientOptions.builder();
private ClientOptions.Builder lemurClientOptionsBuilder = ClientOptions.builder();

private String apiKey = null;

Expand Down Expand Up @@ -37,6 +38,8 @@ public AssemblyAI build() {
}
this.clientOptionsBuilder.addHeader("Authorization", this.apiKey);
clientOptionsBuilder.environment(this.environment);
return new AssemblyAI(clientOptionsBuilder.build());
this.lemurClientOptionsBuilder.addHeader("Authorization", this.apiKey);
lemurClientOptionsBuilder.environment(this.environment);
return new AssemblyAI(clientOptionsBuilder.build(), lemurClientOptionsBuilder.build());
}
}
32 changes: 29 additions & 3 deletions src/main/java/com/assemblyai/api/core/ClientOptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import okhttp3.OkHttpClient;

public final class ClientOptions {
private boolean disableTimeouts;

private final Environment environment;

private final Map<String, String> headers;
Expand All @@ -22,7 +24,8 @@ private ClientOptions(
Environment environment,
Map<String, String> headers,
Map<String, Supplier<String>> headerSuppliers,
OkHttpClient httpClient) {
OkHttpClient httpClient,
boolean disableTimeouts) {
this.environment = environment;
this.headers = new HashMap<>();
this.headers.putAll(headers);
Expand All @@ -35,7 +38,7 @@ private ClientOptions(
"JAVA"));
this.headerSuppliers = headerSuppliers;
this.httpClient = httpClient;
;
this.disableTimeouts = disableTimeouts;
}

public Environment environment() {
Expand All @@ -58,9 +61,18 @@ public OkHttpClient httpClient() {
}

public OkHttpClient httpClientWithTimeout(RequestOptions requestOptions) {
if (this.disableTimeouts) {
return this.httpClient
.newBuilder()
.callTimeout(0, TimeUnit.SECONDS)
.readTimeout(0, TimeUnit.SECONDS)
.build();
}

if (requestOptions == null) {
return this.httpClient;
}

return this.httpClient
.newBuilder()
.callTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
Expand All @@ -81,6 +93,8 @@ public static final class Builder {

private final Map<String, Supplier<String>> headerSuppliers = new HashMap<>();

private boolean disableTimeouts = false;

public Builder environment(Environment environment) {
this.environment = environment;
return this;
Expand All @@ -96,11 +110,23 @@ public Builder addHeader(String key, Supplier<String> value) {
return this;
}

/**
* This is a temporary measure ot disable timeouts for LeMUR client.
* Don't use this method.
*
* @return ClientOptionsBuilder
* @deprecated
*/
public Builder disableTimeouts() {
this.disableTimeouts = true;
return this;
}

public ClientOptions build() {
OkHttpClient okhttpClient = new OkHttpClient.Builder()
.addInterceptor(new RetryInterceptor(3))
.build();
return new ClientOptions(environment, headers, headerSuppliers, okhttpClient);
return new ClientOptions(environment, headers, headerSuppliers, okhttpClient, this.disableTimeouts);
}
}
}

This file was deleted.