diff --git a/src/main/java/com/plivo/api/Plivo.java b/src/main/java/com/plivo/api/Plivo.java index 79320087..83ca6f10 100644 --- a/src/main/java/com/plivo/api/Plivo.java +++ b/src/main/java/com/plivo/api/Plivo.java @@ -8,10 +8,18 @@ public class Plivo { * Initializes the global {@link PlivoClient} instance */ public static synchronized PlivoClient init(String authId, String authToken) { - instance = new PlivoClient(authId, authToken); + return init(authId, authToken, PlivoClient.BASE_URL); + } + + /** + * Initializes the global {@link PlivoClient} instance + */ + public static synchronized PlivoClient init(String authId, String authToken, String baseUrl) { + instance = new PlivoClient(authId, authToken, baseUrl); return instance; } + /** * Initializes the global {@link PlivoClient} instance, taking the authId and authToken from * environment variables called PLIVO_AUTH_ID and PLIVO_AUTH_TOKEN. diff --git a/src/main/java/com/plivo/api/PlivoClient.java b/src/main/java/com/plivo/api/PlivoClient.java index 7e599298..ce3dc285 100644 --- a/src/main/java/com/plivo/api/PlivoClient.java +++ b/src/main/java/com/plivo/api/PlivoClient.java @@ -100,7 +100,18 @@ public void serialize(Enum value, JsonGenerator gen, SerializerProvider provider private PlivoAPIService apiService = null; public PlivoClient(String authId, String authToken) { - this(authId, authToken, new Builder()); + this(authId, authToken, BASE_URL, new Builder()); + } + + public PlivoClient(String authId, String authToken, String baseUrl) { + this(authId, authToken, baseUrl, new Builder()); + } + + /** + * Constructor left for backward compatibility + */ + public PlivoClient(String authId, String authToken, OkHttpClient.Builder httpClientBuilder) { + this(authId, authToken, BASE_URL, httpClientBuilder); } /** @@ -117,7 +128,7 @@ public PlivoClient(String authId, String authToken) { * @param authToken * @param httpClientBuilder */ - public PlivoClient(String authId, String authToken, OkHttpClient.Builder httpClientBuilder) { + public PlivoClient(String authId, String authToken, String baseUrl, OkHttpClient.Builder httpClientBuilder) { if (!(Utils.isAccountIdValid(authId) || Utils.isSubaccountIdValid(authId))) { throw new IllegalArgumentException("invalid account ID"); } @@ -159,7 +170,7 @@ public PlivoClient(String authId, String authToken, OkHttpClient.Builder httpCli retrofit = new Retrofit.Builder() .client(httpClient) - .baseUrl(BASE_URL) + .baseUrl(baseUrl) .addConverterFactory(JacksonConverterFactory.create(objectMapper)) .build(); diff --git a/src/main/java/com/plivo/api/models/call/actions/CallRecordCreator.java b/src/main/java/com/plivo/api/models/call/actions/CallRecordCreator.java index c85e0757..3ee84b10 100644 --- a/src/main/java/com/plivo/api/models/call/actions/CallRecordCreator.java +++ b/src/main/java/com/plivo/api/models/call/actions/CallRecordCreator.java @@ -3,6 +3,7 @@ import com.plivo.api.PlivoClient; import com.plivo.api.exceptions.PlivoRestException; import com.plivo.api.models.base.Creator; + import java.io.IOException; public class CallRecordCreator extends Creator { diff --git a/src/main/java/com/plivo/api/models/conference/ConferenceRecordCreator.java b/src/main/java/com/plivo/api/models/conference/ConferenceRecordCreator.java index 286e8fa4..26a5d453 100644 --- a/src/main/java/com/plivo/api/models/conference/ConferenceRecordCreator.java +++ b/src/main/java/com/plivo/api/models/conference/ConferenceRecordCreator.java @@ -4,9 +4,10 @@ import com.plivo.api.PlivoClient; import com.plivo.api.exceptions.PlivoRestException; import com.plivo.api.models.base.Creator; -import java.io.IOException; import retrofit2.Call; +import java.io.IOException; + public class ConferenceRecordCreator extends Creator { @JsonIgnore diff --git a/src/test/java/com/plivo/api/BaseTest.java b/src/test/java/com/plivo/api/BaseTest.java index e90c41f9..b98c428c 100644 --- a/src/test/java/com/plivo/api/BaseTest.java +++ b/src/test/java/com/plivo/api/BaseTest.java @@ -78,7 +78,6 @@ protected void assertRequest(String method, String format, Map p public void setUp() throws Exception { server = new MockWebServer(); server.start(); - PlivoClient.BASE_URL = server.url("/").toString(); Plivo.init(authId, authToken); Plivo.getClient().setTesting(true); diff --git a/src/test/java/com/plivo/api/CallTest.java b/src/test/java/com/plivo/api/CallTest.java index 3d44d9f1..3417f307 100644 --- a/src/test/java/com/plivo/api/CallTest.java +++ b/src/test/java/com/plivo/api/CallTest.java @@ -1,18 +1,15 @@ package com.plivo.api; -import static junit.framework.TestCase.assertEquals; - import com.fasterxml.jackson.databind.ObjectMapper; import com.plivo.api.models.call.Call; import com.plivo.api.models.call.LiveCall; import com.squareup.okhttp.mockwebserver.RecordedRequest; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; import org.junit.Test; +import java.util.*; + +import static junit.framework.TestCase.assertEquals; + public class CallTest extends BaseTest { final ObjectMapper objectMapper = new ObjectMapper();