diff --git a/app/src/main/java/com/example/dcav2gui/InstanceInterface.java b/app/src/main/java/com/example/dcav2gui/InstanceInterface.java index 0294590..b346f06 100644 --- a/app/src/main/java/com/example/dcav2gui/InstanceInterface.java +++ b/app/src/main/java/com/example/dcav2gui/InstanceInterface.java @@ -62,11 +62,12 @@ public class InstanceInterface { } - public static List getLastTradesFromExchange(String exchange) throws IOException { + public static List getLastTradesFromExchange(String exchange) throws IOException { Request dealsRequest = new Request.Builder() .url(API_BASE_URL + "/" + exchange + "/get_deals_cache") .header("X-API-KEY", API_KEY) .build(); + try (Response statsResponse = httpClient.newCall(dealsRequest).execute()) { if (!statsResponse.isSuccessful()) { throw new IOException("Unexpected code " + statsResponse); @@ -87,14 +88,56 @@ public class InstanceInterface { //(timestamp,pair,amount,exchange_name,order_id,order_history) //order history always is an empty string when querying the deals cache //It can be safely ignored + JsonArray dealsArray = jsonObject.getAsJsonArray("Deals"); + List dealDataList = new ArrayList<>(); + for (int i = 0; i < dealsArray.size(); i++) { + JsonObject dealObject = dealsArray.get(i).getAsJsonObject(); - return null; + long timestamp = dealObject.get("timestamp").getAsLong(); + String pair = dealObject.get("pair").getAsString(); + double amount = dealObject.get("amount").getAsDouble(); + String exchangeName = dealObject.get("exchange_name").getAsString(); + String orderId = dealObject.get("order_id").getAsString(); + + DealData dealData = new DealData(timestamp, pair, amount, exchangeName, orderId, ""); + dealDataList.add(dealData); + } + return dealDataList; } } - public static List getLastLogs(int amount) throws IOException { - return null; + public static List getLastLogs() throws IOException { + Request logRequest = new Request.Builder() + .url(API_BASE_URL + "/get_log_lisd") + .header("X-API-KEY", API_KEY) + .build(); + + + try (Response statsResponse = httpClient.newCall(logRequest).execute()) { + if (!statsResponse.isSuccessful()) { + throw new IOException("Unexpected code " + statsResponse); + } + String dealsResponseBody = statsResponse.body().string(); + JsonElement jsonElement = JsonParser.parseString(dealsResponseBody); + if (!jsonElement.isJsonObject()) { + System.err.println("The parsed JSON response is not a JsonObject."); + return null; + } + JsonObject jsonObject = jsonElement.getAsJsonObject(); + if (!jsonObject.has("Logs")) { + System.err.println("The parsed JSON response does not contain the logs key."); + return null; + } + JsonArray logsArray = jsonObject.getAsJsonArray("Logs"); + List logList = new ArrayList<>(); + for (int i = 0; i < logsArray.size(); i++) { + logList.add(logsArray.get(i).getAsString()); + } + + return logList; + } + } @@ -248,13 +291,15 @@ public class InstanceInterface { public static class DealData { private final double timestamp; private final String pair; + private final double amount; private final String exchangeName; private final String orderId; private final String orderHistory; - public DealData(double timestamp, String pair, String exchangeName, String orderId, String orderHistory) { + public DealData(double timestamp, String pair, double amount, String exchangeName, String orderId, String orderHistory) { this.timestamp = timestamp; this.pair = pair; + this.amount = amount; this.exchangeName = exchangeName; this.orderId = orderId; this.orderHistory = orderHistory; @@ -262,6 +307,7 @@ public class InstanceInterface { public double getTimestamp() { return timestamp; } public String getPair() { return pair; } + public double getAmount() {return amount; } public String getExchangeName() { return exchangeName; } public String getOrderId() { return orderId; } public String getOrderHistory() { return orderHistory; }