package com.convertapi;
import okhttp3.MediaType;
import okhttp3.Request;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import static java.nio.file.StandardOpenOption.READ;
@SuppressWarnings("WeakerAccess")
public class Param {
private final String name;
private CompletableFuture> value;
private boolean isUploadedFile = false;
@SuppressWarnings("unused")
private Param(String name) {
this.name = name.toLowerCase();
}
@SuppressWarnings("unused")
public Param(String name, String value) {
this(name.toLowerCase());
List
> upload(InputStream stream, String fileName, Config config) {
return CompletableFuture.supplyAsync(() -> {
Request request = Http.getRequestBuilder()
.url(Http.getUrlBuilder(config).addPathSegment("upload")
.addQueryParameter("filename", fileName)
.build())
.post(RequestBodyStream.create(MediaType.parse("application/octet-stream"), stream))
.build();
try {
String id = Http.getClient().newCall(request).execute().body().string();
//noinspection ConstantConditions
return Collections.singletonList(id);
} catch (IOException e) {
throw new RuntimeException(e);
}
});
}
public static Param[] concat(Param[] a, Param[] b) {
Param[] result = new Param[a.length + b.length];
System.arraycopy(a, 0, result, 0, a.length);
System.arraycopy(b, 0, result, a.length, b.length);
return result;
}
}