Skip to content

Commit 2d24ef1

Browse files
Add null handling for requestOptions parameter object (#37)
Co-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>
1 parent 19015fa commit 2d24ef1

File tree

193 files changed

+1333
-2195
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

193 files changed

+1333
-2195
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ publishing {
4646
maven(MavenPublication) {
4747
groupId = 'dev.merge'
4848
artifactId = 'merge-java-client'
49-
version = '1.0.6'
49+
version = '1.0.7'
5050
from components.java
5151
}
5252
}

src/main/java/com/merge/api/core/ClientOptions.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import java.util.HashMap;
77
import java.util.Map;
8+
import java.util.concurrent.TimeUnit;
89
import java.util.function.Supplier;
910
import okhttp3.OkHttpClient;
1011

@@ -26,7 +27,7 @@ private ClientOptions(
2627
this.headers = new HashMap<>();
2728
this.headers.putAll(headers);
2829
this.headers.putAll(Map.of(
29-
"X-Fern-SDK-Name", "com.merge.fern:api-sdk", "X-Fern-SDK-Version", "1.0.6", "X-Fern-Language", "JAVA"));
30+
"X-Fern-SDK-Name", "com.merge.fern:api-sdk", "X-Fern-SDK-Version", "1.0.7", "X-Fern-Language", "JAVA"));
3031
this.headerSuppliers = headerSuppliers;
3132
this.httpClient = httpClient;
3233
;
@@ -51,6 +52,19 @@ public OkHttpClient httpClient() {
5152
return this.httpClient;
5253
}
5354

55+
public OkHttpClient httpClientWithTimeout(RequestOptions requestOptions) {
56+
if (requestOptions == null) {
57+
return this.httpClient;
58+
}
59+
return this.httpClient
60+
.newBuilder()
61+
.callTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
62+
.connectTimeout(0, TimeUnit.SECONDS)
63+
.writeTimeout(0, TimeUnit.SECONDS)
64+
.readTimeout(0, TimeUnit.SECONDS)
65+
.build();
66+
}
67+
5468
public static Builder builder() {
5569
return new Builder();
5670
}

src/main/java/com/merge/api/core/Environment.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
package com.merge.api.core;
55

66
public final class Environment {
7-
public static final Environment PRODUCTION = new Environment("https://api.merge.dev");
7+
public static final Environment PRODUCTION = new Environment("https://api.merge.dev/api");
88

9-
public static final Environment SANDBOX = new Environment("https://api-sandbox.merge.dev");
9+
public static final Environment SANDBOX = new Environment("https://api-sandbox.merge.dev/api");
1010

11-
public static final Environment PRODUCTION_EU = new Environment("https://api-eu.merge.dev");
11+
public static final Environment PRODUCTION_EU = new Environment("https://api-eu.merge.dev/api");
1212

1313
private final String url;
1414

src/main/java/com/merge/api/resources/accounting/accountdetails/AccountDetailsClient.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public AccountDetails retrieve() {
3535
public AccountDetails retrieve(RequestOptions requestOptions) {
3636
HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
3737
.newBuilder()
38-
.addPathSegments("api/accounting/v1/account-details")
38+
.addPathSegments("accounting/v1/account-details")
3939
.build();
4040
Request okhttpRequest = new Request.Builder()
4141
.url(httpUrl)
@@ -45,10 +45,8 @@ public AccountDetails retrieve(RequestOptions requestOptions) {
4545
.build();
4646
try {
4747
OkHttpClient client = clientOptions.httpClient();
48-
if (requestOptions.getTimeout().isPresent()) {
49-
client = client.newBuilder()
50-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
51-
.build();
48+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
49+
client = clientOptions.httpClientWithTimeout(requestOptions);
5250
}
5351
Response response = client.newCall(okhttpRequest).execute();
5452
if (response.isSuccessful()) {

src/main/java/com/merge/api/resources/accounting/accountingperiods/AccountingPeriodsClient.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public PaginatedAccountingPeriodList list(AccountingPeriodsListRequest request)
4545
public PaginatedAccountingPeriodList list(AccountingPeriodsListRequest request, RequestOptions requestOptions) {
4646
HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
4747
.newBuilder()
48-
.addPathSegments("api/accounting/v1/accounting-periods");
48+
.addPathSegments("accounting/v1/accounting-periods");
4949
if (request.getCursor().isPresent()) {
5050
httpUrl.addQueryParameter("cursor", request.getCursor().get());
5151
}
@@ -69,10 +69,8 @@ public PaginatedAccountingPeriodList list(AccountingPeriodsListRequest request,
6969
Request okhttpRequest = _requestBuilder.build();
7070
try {
7171
OkHttpClient client = clientOptions.httpClient();
72-
if (requestOptions.getTimeout().isPresent()) {
73-
client = client.newBuilder()
74-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
75-
.build();
72+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
73+
client = clientOptions.httpClientWithTimeout(requestOptions);
7674
}
7775
Response response = client.newCall(okhttpRequest).execute();
7876
if (response.isSuccessful()) {
@@ -108,7 +106,7 @@ public AccountingPeriod retrieve(
108106
String id, AccountingPeriodsRetrieveRequest request, RequestOptions requestOptions) {
109107
HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
110108
.newBuilder()
111-
.addPathSegments("api/accounting/v1/accounting-periods")
109+
.addPathSegments("accounting/v1/accounting-periods")
112110
.addPathSegment(id);
113111
if (request.getIncludeRemoteData().isPresent()) {
114112
httpUrl.addQueryParameter(
@@ -122,10 +120,8 @@ public AccountingPeriod retrieve(
122120
Request okhttpRequest = _requestBuilder.build();
123121
try {
124122
OkHttpClient client = clientOptions.httpClient();
125-
if (requestOptions.getTimeout().isPresent()) {
126-
client = client.newBuilder()
127-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
128-
.build();
123+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
124+
client = clientOptions.httpClientWithTimeout(requestOptions);
129125
}
130126
Response response = client.newCall(okhttpRequest).execute();
131127
if (response.isSuccessful()) {

src/main/java/com/merge/api/resources/accounting/accounts/AccountsClient.java

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public PaginatedAccountList list(AccountsListRequest request) {
5252
public PaginatedAccountList list(AccountsListRequest request, RequestOptions requestOptions) {
5353
HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
5454
.newBuilder()
55-
.addPathSegments("api/accounting/v1/accounts");
55+
.addPathSegments("accounting/v1/accounts");
5656
if (request.getCompanyId().isPresent()) {
5757
httpUrl.addQueryParameter("company_id", request.getCompanyId().get());
5858
}
@@ -109,10 +109,8 @@ public PaginatedAccountList list(AccountsListRequest request, RequestOptions req
109109
Request okhttpRequest = _requestBuilder.build();
110110
try {
111111
OkHttpClient client = clientOptions.httpClient();
112-
if (requestOptions.getTimeout().isPresent()) {
113-
client = client.newBuilder()
114-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
115-
.build();
112+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
113+
client = clientOptions.httpClientWithTimeout(requestOptions);
116114
}
117115
Response response = client.newCall(okhttpRequest).execute();
118116
if (response.isSuccessful()) {
@@ -139,7 +137,7 @@ public AccountResponse create(AccountEndpointRequest request) {
139137
public AccountResponse create(AccountEndpointRequest request, RequestOptions requestOptions) {
140138
HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
141139
.newBuilder()
142-
.addPathSegments("api/accounting/v1/accounts");
140+
.addPathSegments("accounting/v1/accounts");
143141
if (request.getIsDebugMode().isPresent()) {
144142
httpUrl.addQueryParameter(
145143
"is_debug_mode", request.getIsDebugMode().get().toString());
@@ -164,10 +162,8 @@ public AccountResponse create(AccountEndpointRequest request, RequestOptions req
164162
Request okhttpRequest = _requestBuilder.build();
165163
try {
166164
OkHttpClient client = clientOptions.httpClient();
167-
if (requestOptions.getTimeout().isPresent()) {
168-
client = client.newBuilder()
169-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
170-
.build();
165+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
166+
client = clientOptions.httpClientWithTimeout(requestOptions);
171167
}
172168
Response response = client.newCall(okhttpRequest).execute();
173169
if (response.isSuccessful()) {
@@ -201,7 +197,7 @@ public Account retrieve(String id, AccountsRetrieveRequest request) {
201197
public Account retrieve(String id, AccountsRetrieveRequest request, RequestOptions requestOptions) {
202198
HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
203199
.newBuilder()
204-
.addPathSegments("api/accounting/v1/accounts")
200+
.addPathSegments("accounting/v1/accounts")
205201
.addPathSegment(id);
206202
if (request.getExpand().isPresent()) {
207203
httpUrl.addQueryParameter("expand", request.getExpand().get());
@@ -226,10 +222,8 @@ public Account retrieve(String id, AccountsRetrieveRequest request, RequestOptio
226222
Request okhttpRequest = _requestBuilder.build();
227223
try {
228224
OkHttpClient client = clientOptions.httpClient();
229-
if (requestOptions.getTimeout().isPresent()) {
230-
client = client.newBuilder()
231-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
232-
.build();
225+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
226+
client = clientOptions.httpClientWithTimeout(requestOptions);
233227
}
234228
Response response = client.newCall(okhttpRequest).execute();
235229
if (response.isSuccessful()) {
@@ -256,7 +250,7 @@ public MetaResponse metaPostRetrieve() {
256250
public MetaResponse metaPostRetrieve(RequestOptions requestOptions) {
257251
HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
258252
.newBuilder()
259-
.addPathSegments("api/accounting/v1/accounts/meta/post")
253+
.addPathSegments("accounting/v1/accounts/meta/post")
260254
.build();
261255
Request okhttpRequest = new Request.Builder()
262256
.url(httpUrl)
@@ -266,10 +260,8 @@ public MetaResponse metaPostRetrieve(RequestOptions requestOptions) {
266260
.build();
267261
try {
268262
OkHttpClient client = clientOptions.httpClient();
269-
if (requestOptions.getTimeout().isPresent()) {
270-
client = client.newBuilder()
271-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
272-
.build();
263+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
264+
client = clientOptions.httpClientWithTimeout(requestOptions);
273265
}
274266
Response response = client.newCall(okhttpRequest).execute();
275267
if (response.isSuccessful()) {

src/main/java/com/merge/api/resources/accounting/accounttoken/AccountTokenClient.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public AccountToken retrieve(String publicToken) {
3535
public AccountToken retrieve(String publicToken, RequestOptions requestOptions) {
3636
HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
3737
.newBuilder()
38-
.addPathSegments("api/accounting/v1/account-token")
38+
.addPathSegments("accounting/v1/account-token")
3939
.addPathSegment(publicToken)
4040
.build();
4141
Request okhttpRequest = new Request.Builder()
@@ -46,10 +46,8 @@ public AccountToken retrieve(String publicToken, RequestOptions requestOptions)
4646
.build();
4747
try {
4848
OkHttpClient client = clientOptions.httpClient();
49-
if (requestOptions.getTimeout().isPresent()) {
50-
client = client.newBuilder()
51-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
52-
.build();
49+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
50+
client = clientOptions.httpClientWithTimeout(requestOptions);
5351
}
5452
Response response = client.newCall(okhttpRequest).execute();
5553
if (response.isSuccessful()) {

src/main/java/com/merge/api/resources/accounting/addresses/AddressesClient.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public Address retrieve(String id, AddressesRetrieveRequest request) {
4343
public Address retrieve(String id, AddressesRetrieveRequest request, RequestOptions requestOptions) {
4444
HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
4545
.newBuilder()
46-
.addPathSegments("api/accounting/v1/addresses")
46+
.addPathSegments("accounting/v1/addresses")
4747
.addPathSegment(id);
4848
if (request.getIncludeRemoteData().isPresent()) {
4949
httpUrl.addQueryParameter(
@@ -64,10 +64,8 @@ public Address retrieve(String id, AddressesRetrieveRequest request, RequestOpti
6464
Request okhttpRequest = _requestBuilder.build();
6565
try {
6666
OkHttpClient client = clientOptions.httpClient();
67-
if (requestOptions.getTimeout().isPresent()) {
68-
client = client.newBuilder()
69-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
70-
.build();
67+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
68+
client = clientOptions.httpClientWithTimeout(requestOptions);
7169
}
7270
Response response = client.newCall(okhttpRequest).execute();
7371
if (response.isSuccessful()) {

src/main/java/com/merge/api/resources/accounting/asyncpassthrough/AsyncPassthroughClient.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public AsyncPassthroughReciept create(DataPassthroughRequest request) {
3939
public AsyncPassthroughReciept create(DataPassthroughRequest request, RequestOptions requestOptions) {
4040
HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
4141
.newBuilder()
42-
.addPathSegments("api/accounting/v1/async-passthrough")
42+
.addPathSegments("accounting/v1/async-passthrough")
4343
.build();
4444
RequestBody body;
4545
try {
@@ -56,10 +56,8 @@ public AsyncPassthroughReciept create(DataPassthroughRequest request, RequestOpt
5656
.build();
5757
try {
5858
OkHttpClient client = clientOptions.httpClient();
59-
if (requestOptions.getTimeout().isPresent()) {
60-
client = client.newBuilder()
61-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
62-
.build();
59+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
60+
client = clientOptions.httpClientWithTimeout(requestOptions);
6361
}
6462
Response response = client.newCall(okhttpRequest).execute();
6563
if (response.isSuccessful()) {
@@ -86,7 +84,7 @@ public RemoteResponse retrieve(String asyncPassthroughReceiptId) {
8684
public RemoteResponse retrieve(String asyncPassthroughReceiptId, RequestOptions requestOptions) {
8785
HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
8886
.newBuilder()
89-
.addPathSegments("api/accounting/v1/async-passthrough")
87+
.addPathSegments("accounting/v1/async-passthrough")
9088
.addPathSegment(asyncPassthroughReceiptId)
9189
.build();
9290
Request okhttpRequest = new Request.Builder()
@@ -97,10 +95,8 @@ public RemoteResponse retrieve(String asyncPassthroughReceiptId, RequestOptions
9795
.build();
9896
try {
9997
OkHttpClient client = clientOptions.httpClient();
100-
if (requestOptions.getTimeout().isPresent()) {
101-
client = client.newBuilder()
102-
.readTimeout(requestOptions.getTimeout().get(), requestOptions.getTimeoutTimeUnit())
103-
.build();
98+
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
99+
client = clientOptions.httpClientWithTimeout(requestOptions);
104100
}
105101
Response response = client.newCall(okhttpRequest).execute();
106102
if (response.isSuccessful()) {

0 commit comments

Comments
 (0)