This is an automated email from the ASF dual-hosted git repository.
arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new c2d5a735d Fineract client builder tenant and username/password are
made optional
c2d5a735d is described below
commit c2d5a735d66595a3db5fe205e06a437c782371e9
Author: Arnold Galovics <[email protected]>
AuthorDate: Fri Jul 15 17:20:26 2022 +0200
Fineract client builder tenant and username/password are made optional
---
.../fineract/client/util/FineractClient.java | 24 ++++++++++++++++------
.../client/test/FineractClientTechnicalTest.java | 6 ------
2 files changed, 18 insertions(+), 12 deletions(-)
diff --git
a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
index 9efee26aa..3c44b1e59 100644
---
a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
+++
b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
@@ -141,6 +141,8 @@ import
org.apache.fineract.client.services.UserGeneratedDocumentsApi;
import org.apache.fineract.client.services.UsersApi;
import org.apache.fineract.client.services.WorkingDaysApi;
import org.apache.fineract.client.util.JSON.GsonCustomConverterFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import retrofit2.Retrofit;
import retrofit2.converter.scalars.ScalarsConverterFactory;
@@ -406,6 +408,8 @@ public final class FineractClient {
public static final class Builder {
+ private static final Logger log =
LoggerFactory.getLogger(Builder.class);
+
private final JSON json = new JSON();
private final OkHttpClient.Builder okBuilder = new
OkHttpClient.Builder();
private final Retrofit.Builder retrofitBuilder = new
Retrofit.Builder().addConverterFactory(ScalarsConverterFactory.create())
@@ -488,14 +492,22 @@ public final class FineractClient {
retrofitBuilder.baseUrl(has("baseURL", baseURL));
// Tenant
- ApiKeyAuth tenantAuth = new ApiKeyAuth("header",
"fineract-platform-tenantid");
- tenantAuth.setApiKey(has("tenant", tenant));
- okBuilder.addInterceptor(tenantAuth);
+ if (tenant != null) {
+ ApiKeyAuth tenantAuth = new ApiKeyAuth("header",
"fineract-platform-tenantid");
+ tenantAuth.setApiKey(has("tenant", tenant));
+ okBuilder.addInterceptor(tenantAuth);
+ } else {
+ log.warn("Tenant hasn't been configured for the client");
+ }
// BASIC Auth
- HttpBasicAuth basicAuth = new HttpBasicAuth();
- basicAuth.setCredentials(has("username", username),
has("password", password));
- okBuilder.addInterceptor(basicAuth);
+ if (username != null && password != null) {
+ HttpBasicAuth basicAuth = new HttpBasicAuth();
+ basicAuth.setCredentials(has("username", username),
has("password", password));
+ okBuilder.addInterceptor(basicAuth);
+ } else {
+ log.warn("Username and password haven't been configured for
the client");
+ }
OkHttpClient okHttpClient = okBuilder.build();
retrofitBuilder.client(okHttpClient);
diff --git
a/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
b/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
index 63bb56773..efbe147aa 100644
---
a/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
+++
b/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
@@ -44,11 +44,5 @@ public class FineractClientTechnicalTest {
assertThrows(IllegalStateException.class, () -> {
FineractClient.builder().build();
});
- assertThrows(IllegalStateException.class, () -> {
- FineractClient.builder().baseURL("https://server/").build();
- });
- assertThrows(IllegalStateException.class, () -> {
-
FineractClient.builder().baseURL("https://server/").tenant("default").build();
- });
}
}