Rewrite 'api' to Kotlin
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
package com.github.gotify.api;
|
||||
|
||||
import java.io.IOException;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Response;
|
||||
|
||||
public class Api {
|
||||
public static <T> T execute(Call<T> call) throws ApiException {
|
||||
try {
|
||||
Response<T> response = call.execute();
|
||||
|
||||
if (response.isSuccessful()) {
|
||||
return response.body();
|
||||
} else {
|
||||
throw new ApiException(response);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new ApiException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
21
app/src/main/java/com/github/gotify/api/Api.kt
Normal file
21
app/src/main/java/com/github/gotify/api/Api.kt
Normal file
@@ -0,0 +1,21 @@
|
||||
package com.github.gotify.api
|
||||
|
||||
import java.io.IOException
|
||||
import retrofit2.Call
|
||||
|
||||
object Api {
|
||||
@Throws(ApiException::class)
|
||||
fun <T> execute(call: Call<T>): T? {
|
||||
try {
|
||||
val response = call.execute()
|
||||
|
||||
if (response.isSuccessful) {
|
||||
return response.body()
|
||||
} else {
|
||||
throw ApiException(response)
|
||||
}
|
||||
} catch (e: IOException) {
|
||||
throw ApiException(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
package com.github.gotify.api;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Locale;
|
||||
import retrofit2.Response;
|
||||
|
||||
public final class ApiException extends Exception {
|
||||
|
||||
private String body;
|
||||
private int code;
|
||||
|
||||
ApiException(Response<?> response) {
|
||||
super("Api Error", null);
|
||||
try {
|
||||
this.body = response.errorBody() != null ? response.errorBody().string() : "";
|
||||
} catch (IOException e) {
|
||||
this.body = "Error while getting error body :(";
|
||||
}
|
||||
this.code = response.code();
|
||||
}
|
||||
|
||||
ApiException(Throwable cause) {
|
||||
super("Request failed.", cause);
|
||||
this.body = "";
|
||||
this.code = 0;
|
||||
}
|
||||
|
||||
public String body() {
|
||||
return body;
|
||||
}
|
||||
|
||||
public int code() {
|
||||
return code;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format(
|
||||
Locale.ENGLISH,
|
||||
"Code(%d) Response: %s",
|
||||
code(),
|
||||
body().substring(0, Math.min(body().length(), 200)));
|
||||
}
|
||||
}
|
||||
34
app/src/main/java/com/github/gotify/api/ApiException.kt
Normal file
34
app/src/main/java/com/github/gotify/api/ApiException.kt
Normal file
@@ -0,0 +1,34 @@
|
||||
package com.github.gotify.api
|
||||
|
||||
import java.io.IOException
|
||||
import java.util.*
|
||||
import retrofit2.Response
|
||||
|
||||
internal class ApiException : Exception {
|
||||
var body: String = ""
|
||||
private set
|
||||
var code: Int
|
||||
private set
|
||||
|
||||
constructor(response: Response<*>) : super("Api Error", null) {
|
||||
body = try {
|
||||
if (response.errorBody() != null) response.errorBody()!!.string() else ""
|
||||
} catch (e: IOException) {
|
||||
"Error while getting error body :("
|
||||
}
|
||||
code = response.code()
|
||||
}
|
||||
|
||||
constructor(cause: Throwable?) : super("Request failed.", cause) {
|
||||
code = 0
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return String.format(
|
||||
Locale.ENGLISH,
|
||||
"Code(%d) Response: %s",
|
||||
code,
|
||||
body.substring(0, body.length.coerceAtMost(200))
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
package com.github.gotify.api;
|
||||
|
||||
import android.app.Activity;
|
||||
import com.github.gotify.log.Log;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Response;
|
||||
|
||||
public class Callback<T> {
|
||||
private final SuccessCallback<T> onSuccess;
|
||||
private final ErrorCallback onError;
|
||||
|
||||
private Callback(SuccessCallback<T> onSuccess, ErrorCallback onError) {
|
||||
this.onSuccess = onSuccess;
|
||||
this.onError = onError;
|
||||
}
|
||||
|
||||
public static <T> retrofit2.Callback<T> callInUI(
|
||||
Activity context, SuccessCallback<T> onSuccess, ErrorCallback onError) {
|
||||
return call(
|
||||
(data) -> context.runOnUiThread(() -> onSuccess.onSuccess(data)),
|
||||
(e) -> context.runOnUiThread(() -> onError.onError(e)));
|
||||
}
|
||||
|
||||
public static <T> retrofit2.Callback<T> call() {
|
||||
return call((e) -> {}, (e) -> {});
|
||||
}
|
||||
|
||||
public static <T> retrofit2.Callback<T> call(
|
||||
SuccessCallback<T> onSuccess, ErrorCallback onError) {
|
||||
return new RetrofitCallback<>(merge(of(onSuccess, onError), errorCallback()));
|
||||
}
|
||||
|
||||
private static <T> Callback<T> of(SuccessCallback<T> onSuccess, ErrorCallback onError) {
|
||||
return new Callback<>(onSuccess, onError);
|
||||
}
|
||||
|
||||
private static <T> Callback<T> errorCallback() {
|
||||
return new Callback<>((ignored) -> {}, (error) -> Log.e("Error while api call", error));
|
||||
}
|
||||
|
||||
private static <T> Callback<T> merge(Callback<T> left, Callback<T> right) {
|
||||
return new Callback<>(
|
||||
(data) -> {
|
||||
left.onSuccess.onSuccess(data);
|
||||
right.onSuccess.onSuccess(data);
|
||||
},
|
||||
(error) -> {
|
||||
left.onError.onError(error);
|
||||
right.onError.onError(error);
|
||||
});
|
||||
}
|
||||
|
||||
public interface SuccessCallback<T> {
|
||||
void onSuccess(T data);
|
||||
}
|
||||
|
||||
public interface ErrorCallback {
|
||||
void onError(ApiException t);
|
||||
}
|
||||
|
||||
private static final class RetrofitCallback<T> implements retrofit2.Callback<T> {
|
||||
|
||||
private Callback<T> callback;
|
||||
|
||||
private RetrofitCallback(Callback<T> callback) {
|
||||
this.callback = callback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call<T> call, Response<T> response) {
|
||||
if (response.isSuccessful()) {
|
||||
callback.onSuccess.onSuccess(response.body());
|
||||
} else {
|
||||
callback.onError.onError(new ApiException(response));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<T> call, Throwable t) {
|
||||
callback.onError.onError(new ApiException(t));
|
||||
}
|
||||
}
|
||||
}
|
||||
91
app/src/main/java/com/github/gotify/api/Callback.kt
Normal file
91
app/src/main/java/com/github/gotify/api/Callback.kt
Normal file
@@ -0,0 +1,91 @@
|
||||
package com.github.gotify.api
|
||||
|
||||
import android.app.Activity
|
||||
import com.github.gotify.log.Log
|
||||
import retrofit2.Call
|
||||
import retrofit2.Response
|
||||
|
||||
internal class Callback<T> private constructor(
|
||||
private val onSuccess: SuccessCallback<T>,
|
||||
private val onError: ErrorCallback
|
||||
) {
|
||||
fun interface SuccessCallback<T> {
|
||||
fun onSuccess(data: T?)
|
||||
}
|
||||
|
||||
fun interface ErrorCallback {
|
||||
fun onError(t: ApiException)
|
||||
}
|
||||
|
||||
private class RetrofitCallback<T>(callback: Callback<T>) : retrofit2.Callback<T> {
|
||||
private val callback: Callback<T>
|
||||
|
||||
init {
|
||||
this.callback = callback
|
||||
}
|
||||
|
||||
override fun onResponse(call: Call<T>, response: Response<T>) {
|
||||
if (response.isSuccessful) {
|
||||
callback.onSuccess.onSuccess(response.body())
|
||||
} else {
|
||||
callback.onError.onError(ApiException(response))
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(call: Call<T>, t: Throwable) {
|
||||
callback.onError.onError(ApiException(t))
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun <T> callInUI(
|
||||
context: Activity,
|
||||
onSuccess: SuccessCallback<T>,
|
||||
onError: ErrorCallback
|
||||
): retrofit2.Callback<T> {
|
||||
return call(
|
||||
{
|
||||
context.runOnUiThread {
|
||||
onSuccess.onSuccess(it)
|
||||
}
|
||||
},
|
||||
{
|
||||
context.runOnUiThread {
|
||||
onError.onError(it)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun <T> call(): retrofit2.Callback<T> {
|
||||
return call({},{})
|
||||
}
|
||||
|
||||
fun <T> call(onSuccess: SuccessCallback<T>, onError: ErrorCallback): retrofit2.Callback<T> {
|
||||
return RetrofitCallback(merge(of(onSuccess, onError), errorCallback()))
|
||||
}
|
||||
|
||||
private fun <T> of(
|
||||
onSuccess: SuccessCallback<T>,
|
||||
onError: ErrorCallback
|
||||
): Callback<T> {
|
||||
return Callback(onSuccess, onError)
|
||||
}
|
||||
|
||||
private fun <T> errorCallback(): Callback<T> {
|
||||
return Callback({}, { Log.e("Error while api call", it) })
|
||||
}
|
||||
|
||||
private fun <T> merge(left: Callback<T>, right: Callback<T>): Callback<T> {
|
||||
return Callback(
|
||||
{
|
||||
left.onSuccess.onSuccess(it)
|
||||
right.onSuccess.onSuccess(it)
|
||||
},
|
||||
{
|
||||
left.onError.onError(it)
|
||||
right.onError.onError(it)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
package com.github.gotify.api;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import com.github.gotify.SSLSettings;
|
||||
import com.github.gotify.Utils;
|
||||
import com.github.gotify.log.Log;
|
||||
import java.io.IOException;
|
||||
import java.security.GeneralSecurityException;
|
||||
import java.security.KeyStore;
|
||||
import java.security.SecureRandom;
|
||||
import java.security.cert.Certificate;
|
||||
import java.security.cert.CertificateFactory;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.Collection;
|
||||
import javax.net.ssl.KeyManager;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.TrustManagerFactory;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
||||
public class CertUtils {
|
||||
private static final X509TrustManager trustAll =
|
||||
new X509TrustManager() {
|
||||
@SuppressLint("TrustAllX509TrustManager")
|
||||
@Override
|
||||
public void checkClientTrusted(X509Certificate[] chain, String authType) {}
|
||||
|
||||
@SuppressLint("TrustAllX509TrustManager")
|
||||
@Override
|
||||
public void checkServerTrusted(X509Certificate[] chain, String authType) {}
|
||||
|
||||
@Override
|
||||
public X509Certificate[] getAcceptedIssuers() {
|
||||
return new X509Certificate[] {};
|
||||
}
|
||||
};
|
||||
|
||||
public static Certificate parseCertificate(String cert) {
|
||||
try {
|
||||
CertificateFactory certificateFactory = CertificateFactory.getInstance("X509");
|
||||
|
||||
return certificateFactory.generateCertificate(Utils.stringToInputStream(cert));
|
||||
} catch (Exception e) {
|
||||
throw new IllegalArgumentException("certificate is invalid");
|
||||
}
|
||||
}
|
||||
|
||||
public static void applySslSettings(OkHttpClient.Builder builder, SSLSettings settings) {
|
||||
// Modified from ApiClient.applySslSettings in the client package.
|
||||
|
||||
try {
|
||||
if (!settings.validateSSL) {
|
||||
SSLContext context = SSLContext.getInstance("TLS");
|
||||
context.init(
|
||||
new KeyManager[] {}, new TrustManager[] {trustAll}, new SecureRandom());
|
||||
builder.sslSocketFactory(context.getSocketFactory(), trustAll);
|
||||
builder.hostnameVerifier((a, b) -> true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (settings.cert != null) {
|
||||
TrustManager[] trustManagers = certToTrustManager(settings.cert);
|
||||
|
||||
if (trustManagers != null && trustManagers.length > 0) {
|
||||
SSLContext context = SSLContext.getInstance("TLS");
|
||||
context.init(new KeyManager[] {}, trustManagers, new SecureRandom());
|
||||
builder.sslSocketFactory(
|
||||
context.getSocketFactory(), (X509TrustManager) trustManagers[0]);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// We shouldn't have issues since the cert is verified on login.
|
||||
Log.e("Failed to apply SSL settings", e);
|
||||
}
|
||||
}
|
||||
|
||||
private static TrustManager[] certToTrustManager(String cert) throws GeneralSecurityException {
|
||||
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
|
||||
Collection<? extends Certificate> certificates =
|
||||
certificateFactory.generateCertificates(Utils.stringToInputStream(cert));
|
||||
if (certificates.isEmpty()) {
|
||||
throw new IllegalArgumentException("expected non-empty set of trusted certificates");
|
||||
}
|
||||
KeyStore caKeyStore = newEmptyKeyStore();
|
||||
int index = 0;
|
||||
for (Certificate certificate : certificates) {
|
||||
String certificateAlias = "ca" + Integer.toString(index++);
|
||||
caKeyStore.setCertificateEntry(certificateAlias, certificate);
|
||||
}
|
||||
TrustManagerFactory trustManagerFactory =
|
||||
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
|
||||
trustManagerFactory.init(caKeyStore);
|
||||
return trustManagerFactory.getTrustManagers();
|
||||
}
|
||||
|
||||
private static KeyStore newEmptyKeyStore() throws GeneralSecurityException {
|
||||
try {
|
||||
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
|
||||
keyStore.load(null, null);
|
||||
return keyStore;
|
||||
} catch (IOException e) {
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
92
app/src/main/java/com/github/gotify/api/CertUtils.kt
Normal file
92
app/src/main/java/com/github/gotify/api/CertUtils.kt
Normal file
@@ -0,0 +1,92 @@
|
||||
package com.github.gotify.api
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import com.github.gotify.SSLSettings
|
||||
import com.github.gotify.Utils
|
||||
import com.github.gotify.log.Log
|
||||
import java.io.IOException
|
||||
import java.security.GeneralSecurityException
|
||||
import java.security.KeyStore
|
||||
import java.security.SecureRandom
|
||||
import java.security.cert.Certificate
|
||||
import java.security.cert.CertificateFactory
|
||||
import java.security.cert.X509Certificate
|
||||
import javax.net.ssl.*
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
internal object CertUtils {
|
||||
@SuppressLint("CustomX509TrustManager")
|
||||
private val trustAll: X509TrustManager = object : X509TrustManager {
|
||||
@SuppressLint("TrustAllX509TrustManager")
|
||||
override fun checkClientTrusted(chain: Array<X509Certificate>, authType: String) {}
|
||||
|
||||
@SuppressLint("TrustAllX509TrustManager")
|
||||
override fun checkServerTrusted(chain: Array<X509Certificate>, authType: String) {}
|
||||
|
||||
override fun getAcceptedIssuers(): Array<X509Certificate> = arrayOf()
|
||||
}
|
||||
|
||||
fun parseCertificate(cert: String): Certificate {
|
||||
try {
|
||||
val certificateFactory = CertificateFactory.getInstance("X509")
|
||||
return certificateFactory.generateCertificate(Utils.stringToInputStream(cert))
|
||||
} catch (e: Exception) {
|
||||
throw IllegalArgumentException("certificate is invalid")
|
||||
}
|
||||
}
|
||||
|
||||
fun applySslSettings(builder: OkHttpClient.Builder, settings: SSLSettings) {
|
||||
// Modified from ApiClient.applySslSettings in the client package.
|
||||
try {
|
||||
if (!settings.validateSSL) {
|
||||
val context = SSLContext.getInstance("TLS")
|
||||
context.init(arrayOf(), arrayOf<TrustManager>(trustAll), SecureRandom())
|
||||
builder.sslSocketFactory(context.socketFactory, trustAll)
|
||||
builder.hostnameVerifier { _, _ -> true }
|
||||
return
|
||||
}
|
||||
if (settings.cert != null) {
|
||||
val trustManagers = certToTrustManager(settings.cert)
|
||||
if (trustManagers.isNotEmpty()) {
|
||||
val context = SSLContext.getInstance("TLS")
|
||||
context.init(arrayOf(), trustManagers, SecureRandom())
|
||||
builder.sslSocketFactory(
|
||||
context.socketFactory,
|
||||
trustManagers[0] as X509TrustManager
|
||||
)
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
// We shouldn't have issues since the cert is verified on login.
|
||||
Log.e("Failed to apply SSL settings", e)
|
||||
}
|
||||
}
|
||||
|
||||
@Throws(GeneralSecurityException::class)
|
||||
private fun certToTrustManager(cert: String): Array<TrustManager> {
|
||||
val certificateFactory = CertificateFactory.getInstance("X.509")
|
||||
val certificates = certificateFactory.generateCertificates(Utils.stringToInputStream(cert))
|
||||
require(!certificates.isEmpty()) { "expected non-empty set of trusted certificates" }
|
||||
|
||||
val caKeyStore = newEmptyKeyStore()
|
||||
certificates.forEachIndexed { index, certificate ->
|
||||
val certificateAlias = "ca$index"
|
||||
caKeyStore.setCertificateEntry(certificateAlias, certificate)
|
||||
}
|
||||
val trustManagerFactory =
|
||||
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
|
||||
trustManagerFactory.init(caKeyStore)
|
||||
return trustManagerFactory.trustManagers
|
||||
}
|
||||
|
||||
@Throws(GeneralSecurityException::class)
|
||||
private fun newEmptyKeyStore(): KeyStore {
|
||||
return try {
|
||||
val keyStore = KeyStore.getInstance(KeyStore.getDefaultType())
|
||||
keyStore.load(null, null)
|
||||
keyStore
|
||||
} catch (e: IOException) {
|
||||
throw AssertionError(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
package com.github.gotify.api;
|
||||
|
||||
import com.github.gotify.SSLSettings;
|
||||
import com.github.gotify.Settings;
|
||||
import com.github.gotify.client.ApiClient;
|
||||
import com.github.gotify.client.api.UserApi;
|
||||
import com.github.gotify.client.api.VersionApi;
|
||||
import com.github.gotify.client.auth.ApiKeyAuth;
|
||||
import com.github.gotify.client.auth.HttpBasicAuth;
|
||||
|
||||
public class ClientFactory {
|
||||
public static com.github.gotify.client.ApiClient unauthorized(
|
||||
String baseUrl, SSLSettings sslSettings) {
|
||||
return defaultClient(new String[0], baseUrl + "/", sslSettings);
|
||||
}
|
||||
|
||||
public static ApiClient basicAuth(
|
||||
String baseUrl, SSLSettings sslSettings, String username, String password) {
|
||||
ApiClient client = defaultClient(new String[] {"basicAuth"}, baseUrl + "/", sslSettings);
|
||||
HttpBasicAuth auth = (HttpBasicAuth) client.getApiAuthorizations().get("basicAuth");
|
||||
auth.setUsername(username);
|
||||
auth.setPassword(password);
|
||||
return client;
|
||||
}
|
||||
|
||||
public static ApiClient clientToken(String baseUrl, SSLSettings sslSettings, String token) {
|
||||
ApiClient client =
|
||||
defaultClient(new String[] {"clientTokenHeader"}, baseUrl + "/", sslSettings);
|
||||
ApiKeyAuth tokenAuth = (ApiKeyAuth) client.getApiAuthorizations().get("clientTokenHeader");
|
||||
tokenAuth.setApiKey(token);
|
||||
return client;
|
||||
}
|
||||
|
||||
public static VersionApi versionApi(String baseUrl, SSLSettings sslSettings) {
|
||||
return unauthorized(baseUrl, sslSettings).createService(VersionApi.class);
|
||||
}
|
||||
|
||||
public static UserApi userApiWithToken(Settings settings) {
|
||||
return clientToken(settings.url(), settings.sslSettings(), settings.token())
|
||||
.createService(UserApi.class);
|
||||
}
|
||||
|
||||
private static ApiClient defaultClient(
|
||||
String[] authentications, String baseUrl, SSLSettings sslSettings) {
|
||||
ApiClient client = new ApiClient(authentications);
|
||||
CertUtils.applySslSettings(client.getOkBuilder(), sslSettings);
|
||||
client.getAdapterBuilder().baseUrl(baseUrl);
|
||||
return client;
|
||||
}
|
||||
}
|
||||
66
app/src/main/java/com/github/gotify/api/ClientFactory.kt
Normal file
66
app/src/main/java/com/github/gotify/api/ClientFactory.kt
Normal file
@@ -0,0 +1,66 @@
|
||||
package com.github.gotify.api
|
||||
|
||||
import com.github.gotify.SSLSettings
|
||||
import com.github.gotify.Settings
|
||||
import com.github.gotify.client.ApiClient
|
||||
import com.github.gotify.client.api.UserApi
|
||||
import com.github.gotify.client.api.VersionApi
|
||||
import com.github.gotify.client.auth.ApiKeyAuth
|
||||
import com.github.gotify.client.auth.HttpBasicAuth
|
||||
|
||||
internal object ClientFactory {
|
||||
private fun unauthorized(baseUrl: String, sslSettings: SSLSettings
|
||||
): ApiClient {
|
||||
return defaultClient(arrayOfNulls(0), "$baseUrl/", sslSettings)
|
||||
}
|
||||
|
||||
fun basicAuth(
|
||||
baseUrl: String,
|
||||
sslSettings: SSLSettings,
|
||||
username: String?,
|
||||
password: String?
|
||||
): ApiClient {
|
||||
val client = defaultClient(
|
||||
arrayOf("basicAuth"),
|
||||
"$baseUrl/", sslSettings
|
||||
)
|
||||
val auth = client.apiAuthorizations["basicAuth"] as HttpBasicAuth?
|
||||
auth!!.username = username
|
||||
auth.password = password
|
||||
return client
|
||||
}
|
||||
|
||||
fun clientToken(
|
||||
baseUrl: String,
|
||||
sslSettings: SSLSettings,
|
||||
token: String?
|
||||
): ApiClient {
|
||||
val client = defaultClient(
|
||||
arrayOf("clientTokenHeader"),
|
||||
"$baseUrl/", sslSettings
|
||||
)
|
||||
val tokenAuth = client.apiAuthorizations["clientTokenHeader"] as ApiKeyAuth?
|
||||
tokenAuth!!.apiKey = token
|
||||
return client
|
||||
}
|
||||
|
||||
fun versionApi(baseUrl: String, sslSettings: SSLSettings): VersionApi? {
|
||||
return unauthorized(baseUrl, sslSettings).createService(VersionApi::class.java)
|
||||
}
|
||||
|
||||
fun userApiWithToken(settings: Settings): UserApi? {
|
||||
return clientToken(settings.url(), settings.sslSettings(), settings.token())
|
||||
.createService(UserApi::class.java)
|
||||
}
|
||||
|
||||
private fun defaultClient(
|
||||
authentications: Array<String?>,
|
||||
baseUrl: String,
|
||||
sslSettings: SSLSettings
|
||||
): ApiClient {
|
||||
val client = ApiClient(authentications)
|
||||
CertUtils.applySslSettings(client.okBuilder, sslSettings)
|
||||
client.adapterBuilder.baseUrl(baseUrl)
|
||||
return client
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user