diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/amberdata/AmberDataRequestHandler.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/amberdata/AmberDataRequestHandler.java index 21ce7d5e..0fdda531 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/amberdata/AmberDataRequestHandler.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/connected/amberdata/AmberDataRequestHandler.java @@ -91,13 +91,18 @@ public static Object[] requestAaveProtocolDated(AmberDataRequestPacket packet) { packet.getData("date") + "T01:00:00", tmr + "T01:00:00"); + return requestAaveProtocolDated(packet, url); + } + + private static final int request_size = 999; + private static Object[] requestAaveProtocolDated(AmberDataRequestPacket packet, String url) { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() - .url(url) + .url(url + "&size=" + request_size) .get() .addHeader("accept", "application/json") - .addHeader("x-api-key", "UAK7ed69235426c360be22bfc2bde1809b6") + .addHeader("x-api-key", packet.getKey()) .build(); okhttp3.Response response; @@ -115,12 +120,21 @@ public static Object[] requestAaveProtocolDated(AmberDataRequestPacket packet) { if(!json.has("payload") || !json.getJSONObject("payload").has("data")) return new Object[] {false, "Malformed Aave packet"}; - JSONArray arr = json.getJSONObject("payload").getJSONArray("data"); + JSONObject payload = json.getJSONObject("payload"); + JSONArray arr = payload.getJSONArray("data"); for(int i = 0; i < arr.length(); i++) { processAaveJsonRequest(packet, arr.getJSONObject(i)); } - return new Object[] {true, ""}; + if(arr.length() >= request_size) { + JSONObject metadata = payload.getJSONObject("metadata"); + if(metadata.has("next")) + return requestAaveProtocolDated(packet, metadata.getString("next")); + else + return new Object[] {false, "Response did not contain next API cursor"}; + } else { + return new Object[] {true, ""}; + } } catch (IOException e) { e.printStackTrace(); ResponseFactory.responseNotHandled("Unhandled exception cost."); @@ -147,7 +161,7 @@ public static Object[] requestAaveAssetDated(AmberDataRequestPacket packet) { .url(url) .get() .addHeader("accept", "application/json") - .addHeader("x-api-key", "UAK7ed69235426c360be22bfc2bde1809b6") + .addHeader("x-api-key", packet.getKey()) .build(); okhttp3.Response response; @@ -165,7 +179,8 @@ public static Object[] requestAaveAssetDated(AmberDataRequestPacket packet) { if(!json.has("payload") || !json.getJSONObject("payload").has("data")) return new Object[] {false, "Malformed Aave packet"}; - JSONArray arr = json.getJSONObject("payload").getJSONArray("data"); + JSONObject payload = json.getJSONObject("payload"); + JSONArray arr = payload.getJSONArray("data"); for(int i = 0; i < arr.length(); i++) processAaveJsonRequest(packet, arr.getJSONObject(i), packet.getData("asset"));