EarnerInterface API calls
This commit is contained in:
parent
f4ea96d322
commit
d9cad6f07f
|
|
@ -3,10 +3,20 @@ package com.example.dcav2gui;
|
|||
import static com.example.dcav2gui.MainActivity.globalSettings;
|
||||
|
||||
import com.example.dcav2gui.ui.earners.EarnerData;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class EarnerInterface {
|
||||
|
||||
|
|
@ -14,9 +24,535 @@ public class EarnerInterface {
|
|||
private static final String API_KEY = globalSettings.earnApiKey;
|
||||
private static final OkHttpClient httpClient = new OkHttpClient();
|
||||
|
||||
/*
|
||||
Implement API calls
|
||||
*/
|
||||
public static EarnerGlobalData getEarnerGlobalData(boolean retry) throws IOException {
|
||||
double uptime = 0.0;
|
||||
List<EarnerData> earnerList = new ArrayList<>();
|
||||
|
||||
Request getEarnerGlobalDataRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/get_global_status")
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.build();
|
||||
try (Response getEarnerGlobalDataResponse = httpClient.newCall(getEarnerGlobalDataRequest).execute()) {
|
||||
if (!getEarnerGlobalDataResponse.isSuccessful()) {
|
||||
if (getEarnerGlobalDataResponse.code() == 503 && retry) {
|
||||
return getEarnerGlobalData(false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + getEarnerGlobalDataResponse);
|
||||
}
|
||||
String getEarnerGlobalDataResponseBody = getEarnerGlobalDataResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(getEarnerGlobalDataResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
if (jsonObject.has("Error")) {
|
||||
System.err.println("The parsed JSON response contains Error");
|
||||
return null;
|
||||
}
|
||||
|
||||
for (String key : jsonObject.keySet()) {
|
||||
if (key.equals("uptime")) {
|
||||
uptime = jsonObject.get(key).getAsDouble();
|
||||
} else {
|
||||
JsonObject jsonEarner = jsonObject.get(key).getAsJsonObject();
|
||||
earnerList.add(new EarnerData(
|
||||
key,
|
||||
jsonEarner.get("trading_balance").getAsDouble(),
|
||||
jsonEarner.get("earning_balance").getAsDouble(),
|
||||
jsonEarner.get("is_paused").getAsBoolean(),
|
||||
jsonEarner.get("step_size").getAsDouble(),
|
||||
jsonEarner.get("percentage").getAsDouble(),
|
||||
jsonEarner.get("minimum_amount_in_trading_account").getAsDouble(),
|
||||
jsonEarner.get("time_between_subscriptions").getAsDouble(),
|
||||
jsonEarner.get("time_between_redemptions").getAsDouble(),
|
||||
jsonEarner.get("last_subscription").getAsDouble(),
|
||||
jsonEarner.get("last_redemption").getAsDouble()
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
return new EarnerGlobalData(uptime, earnerList);
|
||||
}
|
||||
|
||||
public static JsonObject togglePause(String exchange, boolean retry) throws IOException {
|
||||
Gson gson = new Gson();
|
||||
JsonObject jsonPayload = new JsonObject();
|
||||
jsonPayload.addProperty("broker", exchange);
|
||||
String jsonPayloadString = gson.toJson(jsonPayload);
|
||||
|
||||
RequestBody requestBody = RequestBody.create(jsonPayloadString, MediaType.get("application/json; charset=utf-8"));
|
||||
Request togglePauseRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/toggle_pause")
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.post(requestBody)
|
||||
.build();
|
||||
|
||||
try (Response togglePauseResponse = httpClient.newCall(togglePauseRequest).execute()) {
|
||||
if (!togglePauseResponse.isSuccessful()) {
|
||||
if (togglePauseResponse.code() == 503 && retry) {
|
||||
return togglePause(exchange, false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + togglePauseResponse);
|
||||
}
|
||||
String togglePauseResponseBody = togglePauseResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(togglePauseResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
if (jsonObject.has("Error")) {
|
||||
System.err.println("The parsed JSON response contains Error");
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
//If no error, the response is {"Status": true|false }
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject getStepSize(String exchange, boolean retry) throws IOException {
|
||||
Request getStepSizeRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/get_step_size?broker=" + exchange)
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.build();
|
||||
try (Response getStepSizeResponse = httpClient.newCall(getStepSizeRequest).execute()) {
|
||||
if (!getStepSizeResponse.isSuccessful()) {
|
||||
if (getStepSizeResponse.code() == 503 && retry) {
|
||||
return getStepSize(exchange,false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + getStepSizeResponse);
|
||||
}
|
||||
String getStepSizeResponseBody = getStepSizeResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(getStepSizeResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
return jsonElement.getAsJsonObject();
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject setStepSize(String exchange, double stepSize, boolean retry) throws IOException {
|
||||
Gson gson = new Gson();
|
||||
JsonObject jsonPayload = new JsonObject();
|
||||
jsonPayload.addProperty("broker", exchange);
|
||||
jsonPayload.addProperty("new_step_size", stepSize);
|
||||
String jsonPayloadString = gson.toJson(jsonPayload);
|
||||
|
||||
RequestBody requestBody = RequestBody.create(jsonPayloadString, MediaType.get("application/json; charset=utf-8"));
|
||||
Request setStepSizeRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/set_step_size")
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.post(requestBody)
|
||||
.build();
|
||||
|
||||
try (Response setStepSizeResponse = httpClient.newCall(setStepSizeRequest).execute()) {
|
||||
if (!setStepSizeResponse.isSuccessful()) {
|
||||
if (setStepSizeResponse.code() == 503 && retry) {
|
||||
return setStepSize(exchange, stepSize, false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + setStepSizeResponse);
|
||||
}
|
||||
String setStepSizeResponseBody = setStepSizeResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(setStepSizeResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
if (jsonObject.has("Error")) {
|
||||
System.err.println("The parsed JSON response contains Error");
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
//If no error, the response is {"step_size": stepSize }
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject getPercentage(String exchange, boolean retry) throws IOException {
|
||||
Request getPercentageRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/get_percentage?broker=" + exchange)
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.build();
|
||||
try (Response getPercentageResponse = httpClient.newCall(getPercentageRequest).execute()) {
|
||||
if (!getPercentageResponse.isSuccessful()) {
|
||||
if (getPercentageResponse.code() == 503 && retry) {
|
||||
return getPercentage(exchange,false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + getPercentageResponse);
|
||||
}
|
||||
String getPercentageResponseBody = getPercentageResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(getPercentageResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
return jsonElement.getAsJsonObject();
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject setPercentage(String exchange, double newPercentage, boolean retry) throws IOException {
|
||||
Gson gson = new Gson();
|
||||
JsonObject jsonPayload = new JsonObject();
|
||||
jsonPayload.addProperty("broker", exchange);
|
||||
jsonPayload.addProperty("new_percentage", newPercentage);
|
||||
String jsonPayloadString = gson.toJson(jsonPayload);
|
||||
|
||||
RequestBody requestBody = RequestBody.create(jsonPayloadString, MediaType.get("application/json; charset=utf-8"));
|
||||
Request setPercentageRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/set_percentage")
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.post(requestBody)
|
||||
.build();
|
||||
|
||||
try (Response setPercentageResponse = httpClient.newCall(setPercentageRequest).execute()) {
|
||||
if (!setPercentageResponse.isSuccessful()) {
|
||||
if (setPercentageResponse.code() == 503 && retry) {
|
||||
return setPercentage(exchange, newPercentage, false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + setPercentageResponse);
|
||||
}
|
||||
String setPercentageResponseBody = setPercentageResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(setPercentageResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
if (jsonObject.has("Error")) {
|
||||
System.err.println("The parsed JSON response contains Error");
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
//If no error, the response is {"percentage": newPercentage }
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject getTimeBetweenSubscriptions(String exchange, boolean retry) throws IOException {
|
||||
Request getTimeBetweenSubscriptionsRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/get_time_between_subscriptions?broker=" + exchange)
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.build();
|
||||
try (Response getTimeBetweenSubscriptionsResponse = httpClient.newCall(getTimeBetweenSubscriptionsRequest).execute()) {
|
||||
if (!getTimeBetweenSubscriptionsResponse.isSuccessful()) {
|
||||
if (getTimeBetweenSubscriptionsResponse.code() == 503 && retry) {
|
||||
return getTimeBetweenSubscriptions(exchange,false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + getTimeBetweenSubscriptionsResponse);
|
||||
}
|
||||
String getTimeBetweenSubscriptionsResponseBody = getTimeBetweenSubscriptionsResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(getTimeBetweenSubscriptionsResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
return jsonElement.getAsJsonObject();
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject setTimeBetweenSubscriptions(String exchange, double newTime, boolean retry) throws IOException {
|
||||
Gson gson = new Gson();
|
||||
JsonObject jsonPayload = new JsonObject();
|
||||
jsonPayload.addProperty("broker", exchange);
|
||||
jsonPayload.addProperty("new_time_between_subscriptions", newTime);
|
||||
String jsonPayloadString = gson.toJson(jsonPayload);
|
||||
|
||||
RequestBody requestBody = RequestBody.create(jsonPayloadString, MediaType.get("application/json; charset=utf-8"));
|
||||
Request setTimeBetweenSubscriptionsRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/set_time_between_subscriptions")
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.post(requestBody)
|
||||
.build();
|
||||
|
||||
try (Response setTimeBetweenSubscriptionsResponse = httpClient.newCall(setTimeBetweenSubscriptionsRequest).execute()) {
|
||||
if (!setTimeBetweenSubscriptionsResponse.isSuccessful()) {
|
||||
if (setTimeBetweenSubscriptionsResponse.code() == 503 && retry) {
|
||||
return setTimeBetweenSubscriptions(exchange, newTime, false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + setTimeBetweenSubscriptionsResponse);
|
||||
}
|
||||
String setTimeBetweenSubscriptionsResponseBody = setTimeBetweenSubscriptionsResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(setTimeBetweenSubscriptionsResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
if (jsonObject.has("Error")) {
|
||||
System.err.println("The parsed JSON response contains Error");
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
//If no error, the response is {"time_between_subscriptions": newTime }
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject getTimeBetweenRedemptions(String exchange, boolean retry) throws IOException {
|
||||
Request getTimeBetweenRedemptionsRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/get_time_between_redemptions?broker=" + exchange)
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.build();
|
||||
try (Response getTimeBetweenRedemptionsResponse = httpClient.newCall(getTimeBetweenRedemptionsRequest).execute()) {
|
||||
if (!getTimeBetweenRedemptionsResponse.isSuccessful()) {
|
||||
if (getTimeBetweenRedemptionsResponse.code() == 503 && retry) {
|
||||
return getTimeBetweenRedemptions(exchange,false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + getTimeBetweenRedemptionsResponse);
|
||||
}
|
||||
String getTimeBetweenRedemptionsResponseBody = getTimeBetweenRedemptionsResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(getTimeBetweenRedemptionsResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
return jsonElement.getAsJsonObject();
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject setTimeBetweenRedemptions(String exchange, double newTime, boolean retry) throws IOException {
|
||||
Gson gson = new Gson();
|
||||
JsonObject jsonPayload = new JsonObject();
|
||||
jsonPayload.addProperty("broker", exchange);
|
||||
jsonPayload.addProperty("new_time_between_redemptions", newTime);
|
||||
String jsonPayloadString = gson.toJson(jsonPayload);
|
||||
|
||||
RequestBody requestBody = RequestBody.create(jsonPayloadString, MediaType.get("application/json; charset=utf-8"));
|
||||
Request setTimeBetweenRedemptionsRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/set_time_between_redemptions")
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.post(requestBody)
|
||||
.build();
|
||||
|
||||
try (Response setTimeBetweenRedemptionsResponse = httpClient.newCall(setTimeBetweenRedemptionsRequest).execute()) {
|
||||
if (!setTimeBetweenRedemptionsResponse.isSuccessful()) {
|
||||
if (setTimeBetweenRedemptionsResponse.code() == 503 && retry) {
|
||||
return setTimeBetweenRedemptions(exchange, newTime, false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + setTimeBetweenRedemptionsResponse);
|
||||
}
|
||||
String setTimeBetweenRedemptionsResponseBody = setTimeBetweenRedemptionsResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(setTimeBetweenRedemptionsResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
if (jsonObject.has("Error")) {
|
||||
System.err.println("The parsed JSON response contains Error");
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
//If no error, the response is {"time_between_redemptions": newTime }
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject getMinimumAmountInTradingAccount(String exchange, boolean retry) throws IOException {
|
||||
Request getMinimumAmountInTradingAccountRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/get_minimum_amount_in_trading_account?broker=" + exchange)
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.build();
|
||||
try (Response getMinimumAmountInTradingAccountResponse = httpClient.newCall(getMinimumAmountInTradingAccountRequest).execute()) {
|
||||
if (!getMinimumAmountInTradingAccountResponse.isSuccessful()) {
|
||||
if (getMinimumAmountInTradingAccountResponse.code() == 503 && retry) {
|
||||
return getMinimumAmountInTradingAccount(exchange,false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + getMinimumAmountInTradingAccountResponse);
|
||||
}
|
||||
String getMinimumAmountInTradingAccountResponseBody = getMinimumAmountInTradingAccountResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(getMinimumAmountInTradingAccountResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
return jsonElement.getAsJsonObject();
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject setMinimumAmountInTradingAccount(String exchange, double minAmount, boolean retry) throws IOException {
|
||||
Gson gson = new Gson();
|
||||
JsonObject jsonPayload = new JsonObject();
|
||||
jsonPayload.addProperty("broker", exchange);
|
||||
jsonPayload.addProperty("new_minimum_amount_in_trading_account", minAmount);
|
||||
String jsonPayloadString = gson.toJson(jsonPayload);
|
||||
|
||||
RequestBody requestBody = RequestBody.create(jsonPayloadString, MediaType.get("application/json; charset=utf-8"));
|
||||
Request setMinimumAmountInTradingAccountRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/set_minimum_amount_in_trading_account")
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.post(requestBody)
|
||||
.build();
|
||||
|
||||
try (Response setMinimumAmountInTradingAccountResponse = httpClient.newCall(setMinimumAmountInTradingAccountRequest).execute()) {
|
||||
if (!setMinimumAmountInTradingAccountResponse.isSuccessful()) {
|
||||
if (setMinimumAmountInTradingAccountResponse.code() == 503 && retry) {
|
||||
return setMinimumAmountInTradingAccount(exchange, minAmount, false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + setMinimumAmountInTradingAccountResponse);
|
||||
}
|
||||
String setMinimumAmountInTradingAccountResponseBody = setMinimumAmountInTradingAccountResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(setMinimumAmountInTradingAccountResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
if (jsonObject.has("Error")) {
|
||||
System.err.println("The parsed JSON response contains Error");
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
//If no error, the response is {"minimum_amount_in_trading_account": minAmount}
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject getLastSubscription(String exchange, boolean retry) throws IOException {
|
||||
Request getLastSubscriptionRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/get_last_subscription?broker=" + exchange)
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.build();
|
||||
try (Response getLastSubscriptionResponse = httpClient.newCall(getLastSubscriptionRequest).execute()) {
|
||||
if (!getLastSubscriptionResponse.isSuccessful()) {
|
||||
if (getLastSubscriptionResponse.code() == 503 && retry) {
|
||||
return getLastSubscription(exchange,false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + getLastSubscriptionResponse);
|
||||
}
|
||||
String getLastSubscriptionResponseBody = getLastSubscriptionResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(getLastSubscriptionResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
return jsonElement.getAsJsonObject();
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject getLastRedemption(String exchange, boolean retry) throws IOException {
|
||||
Request getLastRedemptionRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/get_last_redemption?broker=" + exchange)
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.build();
|
||||
try (Response getLastRedemptionResponse = httpClient.newCall(getLastRedemptionRequest).execute()) {
|
||||
if (!getLastRedemptionResponse.isSuccessful()) {
|
||||
if (getLastRedemptionResponse.code() == 503 && retry) {
|
||||
return getLastRedemption(exchange,false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + getLastRedemptionResponse);
|
||||
}
|
||||
String getLastRedemptionResponseBody = getLastRedemptionResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(getLastRedemptionResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
return jsonElement.getAsJsonObject();
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject getTotalBalance(String exchange, boolean retry) throws IOException {
|
||||
Request getTotalBalanceRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/get_total_balance?broker=" + exchange)
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.build();
|
||||
try (Response getTotalBalanceResponse = httpClient.newCall(getTotalBalanceRequest).execute()) {
|
||||
if (!getTotalBalanceResponse.isSuccessful()) {
|
||||
if (getTotalBalanceResponse.code() == 503 && retry) {
|
||||
return getTotalBalance(exchange,false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + getTotalBalanceResponse);
|
||||
}
|
||||
String getTotalBalanceResponseBody = getTotalBalanceResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(getTotalBalanceResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
return jsonElement.getAsJsonObject();
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject subscribeFunds(String exchange, double amount, boolean retry) throws IOException {
|
||||
Gson gson = new Gson();
|
||||
JsonObject jsonPayload = new JsonObject();
|
||||
jsonPayload.addProperty("broker", exchange);
|
||||
jsonPayload.addProperty("amount", amount);
|
||||
String jsonPayloadString = gson.toJson(jsonPayload);
|
||||
|
||||
RequestBody requestBody = RequestBody.create(jsonPayloadString, MediaType.get("application/json; charset=utf-8"));
|
||||
Request subscribeFundsRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/subscribe")
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.post(requestBody)
|
||||
.build();
|
||||
|
||||
try (Response subscribeFundsResponse = httpClient.newCall(subscribeFundsRequest).execute()) {
|
||||
if (!subscribeFundsResponse.isSuccessful()) {
|
||||
if (subscribeFundsResponse.code() == 503 && retry) {
|
||||
return subscribeFunds(exchange, amount, false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + subscribeFundsResponse);
|
||||
}
|
||||
String subscribeFundsResponseBody = subscribeFundsResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(subscribeFundsResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
if (jsonObject.has("Error")) {
|
||||
System.err.println("The parsed JSON response contains Error");
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
//If no errors in the request, the response is {"Success": 0 (success) | 1 (earner error)}
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
|
||||
public static JsonObject redeemFunds(String exchange, double amount, boolean retry) throws IOException {
|
||||
Gson gson = new Gson();
|
||||
JsonObject jsonPayload = new JsonObject();
|
||||
jsonPayload.addProperty("broker", exchange);
|
||||
jsonPayload.addProperty("amount", amount);
|
||||
String jsonPayloadString = gson.toJson(jsonPayload);
|
||||
|
||||
RequestBody requestBody = RequestBody.create(jsonPayloadString, MediaType.get("application/json; charset=utf-8"));
|
||||
Request redeemFundsRequest = new Request.Builder()
|
||||
.url(API_BASE_URL + "/earn/redeem")
|
||||
.header("X-API-KEY", API_KEY)
|
||||
.post(requestBody)
|
||||
.build();
|
||||
|
||||
try (Response redeemFundsResponse = httpClient.newCall(redeemFundsRequest).execute()) {
|
||||
if (!redeemFundsResponse.isSuccessful()) {
|
||||
if (redeemFundsResponse.code() == 503 && retry) {
|
||||
return redeemFunds(exchange, amount, false);
|
||||
}
|
||||
throw new IOException("Unexpected code " + redeemFundsResponse);
|
||||
}
|
||||
String redeemFundsResponseBody = redeemFundsResponse.body().string();
|
||||
JsonElement jsonElement = JsonParser.parseString(redeemFundsResponseBody);
|
||||
if (!jsonElement.isJsonObject()) {
|
||||
System.err.println("The parsed JSON response is not a JsonObject.");
|
||||
return null;
|
||||
}
|
||||
JsonObject jsonObject = jsonElement.getAsJsonObject();
|
||||
if (jsonObject.has("Error")) {
|
||||
System.err.println("The parsed JSON response contains Error");
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
//If no errors in the request, the response is {"Success": 0 (success) | 1 (earner error)}
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class EarnerGlobalData {
|
||||
|
|
|
|||
Loading…
Reference in New Issue