Skip to content
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
73 changes: 13 additions & 60 deletions src/main/java/com/convertapi/client/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,83 +6,44 @@

public class Config {

private static String defaultSecret;
private static String defaultToken;
private static String defaultApiKey;
private static String defaultApiCredentials;
private static int defaultTimeout = 0; // Infinite read waiting
private static Function<OkHttpClient.Builder, OkHttpClient.Builder> defaultHttpClientBuilder = b -> b;
private static final String SCHEME = "https";
private static final String HOST = "v2.convertapi.com";
private final String scheme;
private final String host;
private final String secret;
private final String token;
private final String apiKey;
private final String apiCredentials;
private final int timeout;
private final Function<OkHttpClient.Builder, OkHttpClient.Builder> httpClientBuilder;

@SuppressWarnings("unused")
public Config(String secret, String scheme, String host, int timeout, Function<OkHttpClient.Builder, OkHttpClient.Builder> httpClientBuilder) {
public Config(String apiCredentials, String scheme, String host, int timeout, Function<OkHttpClient.Builder, OkHttpClient.Builder> httpClientBuilder) {
this.scheme = scheme;
this.host = host;
this.secret = secret;
this.token = null;
this.apiKey = null;
this.timeout = timeout;
this.httpClientBuilder = httpClientBuilder;
}

@SuppressWarnings("unused")
public Config(String token, String apiKey, String scheme, String host, int timeout, Function<OkHttpClient.Builder, OkHttpClient.Builder> httpClientBuilder) {
this.scheme = scheme;
this.host = host;
this.secret = null;
this.token = token;
this.apiKey = apiKey;
this.apiCredentials = apiCredentials;
this.timeout = timeout;
this.httpClientBuilder = httpClientBuilder;
}

@SuppressWarnings("WeakerAccess")
public static Config defaults() {
if (Config.defaultSecret != null)
return new Config(Config.defaultSecret, SCHEME, HOST, defaultTimeout, Config.defaultHttpClientBuilder);
return new Config(Config.defaultToken, Config.defaultApiKey, SCHEME, HOST, defaultTimeout, Config.defaultHttpClientBuilder);
}

@SuppressWarnings("WeakerAccess")
public static Config defaults(String secret) {
return new Config(secret, SCHEME, HOST, defaultTimeout, Config.defaultHttpClientBuilder);
return new Config(Config.defaultApiCredentials, SCHEME, HOST, defaultTimeout, Config.defaultHttpClientBuilder);
}

@SuppressWarnings("WeakerAccess")
public static Config defaults(String token, String apiKey) {
return new Config(token, apiKey, SCHEME, HOST, defaultTimeout, Config.defaultHttpClientBuilder);
public static Config defaults(String apiCredentials) {
return new Config(apiCredentials, SCHEME, HOST, defaultTimeout, Config.defaultHttpClientBuilder);
}

@SuppressWarnings("WeakerAccess")
public static Config defaults(String secret, Function<OkHttpClient.Builder, OkHttpClient.Builder> httpClientBuilder) {
return new Config(secret, SCHEME, HOST, defaultTimeout, httpClientBuilder);
}

@SuppressWarnings("WeakerAccess")
public static Config defaults(String token, String apiKey, Function<OkHttpClient.Builder, OkHttpClient.Builder> httpClientBuilder) {
return new Config(token, apiKey, SCHEME, HOST, defaultTimeout, httpClientBuilder);
}

@SuppressWarnings("unused")
public static void setDefaultSecret(String defaultSecret) {
Config.defaultSecret = defaultSecret;
public static Config defaults(String apiCredentials, Function<OkHttpClient.Builder, OkHttpClient.Builder> httpClientBuilder) {
return new Config(apiCredentials, SCHEME, HOST, defaultTimeout, httpClientBuilder);
}

@SuppressWarnings("unused")
public static void setDefaultToken(String defaultToken) {
Config.defaultToken = defaultToken;
}

@SuppressWarnings("unused")
public static void setDefaultApiKey(String defaultApiKey) {
Config.defaultApiKey = defaultApiKey;
public static void setDefaultApiCredentials(String defaultApiCredentials) {
Config.defaultApiCredentials = defaultApiCredentials;
}

@SuppressWarnings("unused")
Expand All @@ -107,16 +68,8 @@ String getHost() {
return host;
}

String getSecret() {
return secret;
}

String getToken() {
return token;
}

String getApiKey() {
return apiKey;
String getApiCredentials() {
return apiCredentials;
}

Function<OkHttpClient.Builder, OkHttpClient.Builder> getHttpClientBuilder() {
Expand Down
58 changes: 14 additions & 44 deletions src/main/java/com/convertapi/client/ConvertApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public static CompletableFuture<ConversionResult> convert(String fromFormat, Str
}
}

Request request = Http.getRequestBuilder()
Request request = Http.getRequestBuilder(config)
.url(url)
.addHeader("Accept", "application/json")
.addHeader("Content-Type", "multipart/form-data")
Expand Down Expand Up @@ -99,7 +99,7 @@ public static User getUser() {

public static User getUser(Config config) {
HttpUrl url = Http.getUrlBuilder(config).addPathSegment("user").build();
Request request = Http.getRequestBuilder()
Request request = Http.getRequestBuilder(config)
.url(url)
.addHeader("Accept", "application/json")
.build();
Expand All @@ -124,13 +124,8 @@ public static CompletableFuture<ConversionResult> convertFile(Path fromFile, Str
}

@SuppressWarnings("unused")
public static CompletableFuture<ConversionResult> convertFile(Path fromFile, String toFormat, String secret, Param... params) throws IOException {
return convertFile(fromFile, toFormat, Config.defaults(secret), params);
}

@SuppressWarnings("unused")
public static CompletableFuture<ConversionResult> convertFile(Path fromFile, String toFormat, String token, String apiKey, Param... params) throws IOException {
return convertFile(fromFile, toFormat, Config.defaults(token, apiKey), params);
public static CompletableFuture<ConversionResult> convertFile(Path fromFile, String toFormat, String apiCredentials, Param... params) throws IOException {
return convertFile(fromFile, toFormat, Config.defaults(apiCredentials), params);
}

public static CompletableFuture<ConversionResult> convertFile(Path fromFile, String toFormat, Config config, Param... params) throws IOException {
Expand All @@ -144,13 +139,8 @@ public static void convertFile(String fromPathToFile, String toPathToFile) {
}

@SuppressWarnings("unused")
public static void convertFile(String fromPathToFile, String toPathToFile, String secret) {
convertFile(fromPathToFile, toPathToFile, Config.defaults(secret));
}

@SuppressWarnings("unused")
public static void convertFile(String fromPathToFile, String toPathToFile, String token, String apiKey) {
convertFile(fromPathToFile, toPathToFile, Config.defaults(token, apiKey));
public static void convertFile(String fromPathToFile, String toPathToFile, String apiCredentials) {
convertFile(fromPathToFile, toPathToFile, Config.defaults(apiCredentials));
}

public static void convertFile(String fromPathToFile, String toPathToFile, Config config) {
Expand All @@ -169,13 +159,8 @@ public static List<Path> convertFileToDir(String fromPathToFile, String toFormat
}

@SuppressWarnings("unused")
public static List<Path> convertFileToDir(String fromPathToFile, String toFormat, String outputDirectory, String secret, Param... params) {
return convertFileToDir(fromPathToFile, toFormat, outputDirectory, Config.defaults(secret), params);
}

@SuppressWarnings("unused")
public static List<Path> convertFileToDir(String fromPathToFile, String toFormat, String outputDirectory, String token, String apiKey, Param... params) {
return convertFileToDir(fromPathToFile, toFormat, outputDirectory, Config.defaults(token, apiKey), params);
public static List<Path> convertFileToDir(String fromPathToFile, String toFormat, String outputDirectory, String apiCredentials, Param... params) {
return convertFileToDir(fromPathToFile, toFormat, outputDirectory, Config.defaults(apiCredentials), params);
}

public static List<Path> convertFileToDir(String fromPathToFile, String toFormat, String outputDirectory, Config config, Param... params) {
Expand All @@ -194,13 +179,8 @@ public static Path convertUrl(String url, String toPathToFile, Param... params)
}

@SuppressWarnings("unused")
public static Path convertUrl(String url, String toPathToFile, String secret, Param... params) {
return convertUrl(url, toPathToFile, Config.defaults(secret), params);
}

@SuppressWarnings("unused")
public static Path convertUrl(String url, String toPathToFile, String token, String apiKey, Param... params) {
return convertUrl(url, toPathToFile, Config.defaults(token, apiKey), params);
public static Path convertUrl(String url, String toPathToFile, String apiCredentials, Param... params) {
return convertUrl(url, toPathToFile, Config.defaults(apiCredentials), params);
}

public static Path convertUrl(String url, String toPathToFile, Config config, Param... params) {
Expand All @@ -219,13 +199,8 @@ public static Path convertRemoteFile(String url, String toPathToFile, Param... p
}

@SuppressWarnings("unused")
public static Path convertRemoteFile(String url, String toPathToFile, String secret, Param... params) {
return convertRemoteFile(url, toPathToFile, Config.defaults(secret), params);
}

@SuppressWarnings("unused")
public static Path convertRemoteFile(String url, String toPathToFile, String token, String apiKey, Param... params) {
return convertRemoteFile(url, toPathToFile, Config.defaults(token, apiKey), params);
public static Path convertRemoteFile(String url, String toPathToFile, String apiCredentials, Param... params) {
return convertRemoteFile(url, toPathToFile, Config.defaults(apiCredentials), params);
}

public static Path convertRemoteFile(String url, String toPathToFile, Config config, Param... params) {
Expand All @@ -245,13 +220,8 @@ public static List<Path> convertRemoteFileToDir(String url, String toFormat, Str
}

@SuppressWarnings("unused")
public static List<Path> convertRemoteFileToDir(String url, String toFormat, String outputDirectory, String secret, Param... params) {
return convertRemoteFileToDir(url, toFormat, outputDirectory, Config.defaults(secret), params);
}

@SuppressWarnings("unused")
public static List<Path> convertRemoteFileToDir(String url, String toFormat, String outputDirectory, String token, String apiKey, Param... params) {
return convertRemoteFileToDir(url, toFormat, outputDirectory, Config.defaults(token, apiKey), params);
public static List<Path> convertRemoteFileToDir(String url, String toFormat, String outputDirectory, String apiCredentials, Param... params) {
return convertRemoteFileToDir(url, toFormat, outputDirectory, Config.defaults(apiCredentials), params);
}

public static List<Path> convertRemoteFileToDir(String url, String toFormat, String outputDirectory, Config config, Param... params) {
Expand Down
25 changes: 14 additions & 11 deletions src/main/java/com/convertapi/client/Http.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.convertapi.client.model.RemoteUploadResponse;
import com.google.gson.Gson;
import okhttp3.*;
import org.jetbrains.annotations.Nullable;

import java.io.IOException;
import java.io.InputStream;
Expand All @@ -26,17 +27,9 @@ static OkHttpClient getClient(Config config) {
}

static HttpUrl.Builder getUrlBuilder(Config config) {
HttpUrl.Builder urlBuilder = new HttpUrl.Builder()
return new HttpUrl.Builder()
.scheme(config.getScheme())
.host(config.getHost());

if (config.getSecret() != null) {
return urlBuilder.addQueryParameter("secret", config.getSecret());
} else {
return urlBuilder
.addQueryParameter("token", config.getToken())
.addQueryParameter("apikey", config.getApiKey());
}
}

static CompletableFuture<InputStream> requestGet(String url) {
Expand Down Expand Up @@ -71,8 +64,18 @@ static CompletableFuture<Void> requestDelete(String url) {
}

static Request.Builder getRequestBuilder() {
return getRequestBuilder(null);
}

static Request.Builder getRequestBuilder(@Nullable Config config) {
String agent = String.format("ConvertAPI-Java/%s (%s)", Http.class.getPackage().getImplementationVersion(), System.getProperty("os.name"));
return new Request.Builder().header("User-Agent", agent);
Request.Builder request = new Request.Builder()
.header("User-Agent", agent);

if (config != null) {
request = request.header("Authorization", "Bearer " + config.getApiCredentials());
}
return request;
}

static RemoteUploadResponse remoteUpload(String urlToFile, Config config) {
Expand All @@ -81,7 +84,7 @@ static RemoteUploadResponse remoteUpload(String urlToFile, Config config) {
.addQueryParameter("url", urlToFile)
.build();

Request request = Http.getRequestBuilder()
Request request = Http.getRequestBuilder(config)
.url(url)
.method("POST", RequestBody.create("", null))
.addHeader("Accept", "application/json")
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/convertapi/client/Param.java
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public List<String> getValue() throws ExecutionException, InterruptedException {

private static CompletableFuture<List<String>> upload(InputStream stream, String fileName, Config config) {
return CompletableFuture.supplyAsync(() -> {
Request request = Http.getRequestBuilder()
Request request = Http.getRequestBuilder(config)
.url(Http.getUrlBuilder(config).addPathSegment("upload")
.addQueryParameter("filename", fileName)
.build())
Expand Down