diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/framework/router/ResponseFactory.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/framework/router/ResponseFactory.java index 0bbc2991..d90fc193 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/framework/router/ResponseFactory.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/framework/router/ResponseFactory.java @@ -85,8 +85,8 @@ public static Response response426(String hash, String subscription) { return Response.create(426, String.format("Stream with hash <%s> does not contain a subscription request of type <%s>.", hash, subscription)); } - public static Response response427(String hash, String subscription, String response) { - return Response.create(427, String.format("Stream with hash <%s> returned an irregular response when attempting to subscribe to <%s>. Response returned is: <%s>", hash, subscription, response)); + public static Response response427(String type, String response) { + return Response.create(427, String.format("Stream of type <%s> returned an irregular response when attempting to send request. Response returned is: <%s>", type, response)); } public static Response response428(String hash, String request) { diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamConnection.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamConnection.java deleted file mode 100644 index f3bff397..00000000 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamConnection.java +++ /dev/null @@ -1,65 +0,0 @@ -//package org.stream.external.handler; -// -//import java.util.HashMap; -//import java.util.TreeSet; -// -//import org.framework.interfaces.Hash; -//import org.framework.interfaces.UUID; -//import org.properties.Config; -// -//public abstract class ExternalStreamConnection implements UUID, Hash { -// -// private final String hash; -// private final ExternalStreamManager manager; -// protected final HashMap data; -// protected final TreeSet subscriptionTypes; -// protected final TreeSet requestTypes; -// -// public ExternalStreamConnection(ExternalStreamManager manager, HashMap data) { -// this.hash = getHash(data); -// this.manager = manager; -// this.data = data; -// this.subscriptionTypes = new TreeSet(); -// this.requestTypes = new TreeSet(); -// -// if(data != null) { -// init(); -// } -// } -// -// public void init() {} -// -// public void processSubscription(String subscription, String data) { -// manager.processSubscription(hash, subscription, data); -// } -// -// public void processRequest(String request, String data) { -// this.processRequest(request, null, data); -// } -// -// public void processRequest(String request, String date, String data) { -// if(date != null) -// manager.processRequest(getUUID() + Config.getProperty("app", "general.collection.delim") + request + Config.getProperty("app", "general.collection.delim") + date, data); -// -// else -// manager.processRequest(getUUID() + Config.getProperty("app", "general.collection.delim") + request, data); -// } -// -// public final String getHash() { -// return hash; -// } -// -// public abstract boolean authorize(); -// public abstract boolean isAuthorized(); -// public abstract boolean isReady(); -// public abstract boolean isActive(); -// -// public abstract boolean containsSubscriptionType(String type); -// public abstract Object[] subscribe(String data); -// -// public abstract boolean containsRequestType(String type); -// public abstract Object[] request(HashMap request); -// -// public abstract boolean start(); -// public abstract boolean stop(); -//} \ No newline at end of file diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamHandler.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamHandler.java index 763ea1c5..037eb634 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamHandler.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamHandler.java @@ -33,6 +33,10 @@ public Response processRQST(Packet packet) { if((validate = packet.validate("type")) != null) return ResponseFactory.response500("ExternalStreamHandler", validate); + // validate type exists + if(!manager.containsType(packet.getData("type"))) + return ResponseFactory.response420(packet.getData("type")); + Object[] response; // check to see if dated @@ -46,8 +50,11 @@ public Response processRQST(Packet packet) { // check to see if valid if(!((boolean)response[0])) { - + return ResponseFactory.response427(packet.getData("type"), response[1].toString()); } + + // return valid + return ResponseFactory.response200(); } // // source: source of data diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamManager.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamManager.java index b56c7ecf..af48a451 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamManager.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/stream/external/handler/ExternalStreamManager.java @@ -55,7 +55,7 @@ protected Object[] request(String type, HashMap data, String sta if(raw_properties.length % 2 != 0) return new Object[] {false, String.format("Properties must be in pairs.")}; - for(int i = 0; i < raw_properties.length; i++) + for(int i = 0; i < raw_properties.length; i+=2) properties.put(raw_properties[i], raw_properties[i + 1]); } @@ -66,8 +66,8 @@ protected Object[] request(String type, HashMap data, String sta if(raw_headers.length % 2 != 0) return new Object[] {false, String.format("Headers must be in pairs.")}; - for(int i = 0; i < raw_headers.length; i++) - properties.put(raw_headers[i], raw_headers[i + 1]); + for(int i = 0; i < raw_headers.length; i+=2) + headers.put(raw_headers[i], raw_headers[i + 1]); } // retrieve request framework @@ -90,6 +90,7 @@ public void processRequest(String collection, HashMap data) { if(data == null || data.isEmpty()) return; + System.out.println(collection + ": " + data.toString()); // TODO: FINISH } } diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/requests/TestExternalRequestManager.java b/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/requests/TestExternalRequestManager.java index 50985f64..8c0b50cd 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/requests/TestExternalRequestManager.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/requests/TestExternalRequestManager.java @@ -5,14 +5,20 @@ import java.util.HashMap; import org.core.core.Core; +import org.junit.BeforeClass; import org.junit.Test; public class TestExternalRequestManager { + public static Core core; + + @BeforeClass + public static void init() { + core = new Core(); + } + @Test public void TestEXSR() { - Core core = new Core(); - HashMap data = new HashMap(); data.put("type", "amberdata-aave-protocol"); @@ -22,4 +28,16 @@ public void TestEXSR() { assertEquals("false", core.send("ESH", "EXSR", data).data()); } + + @Test + public void TestRQST() { + HashMap data = new HashMap(); + data.put("type", "amberdata-uniswap-pool"); + data.put("url_path", "poolAddress,0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc"); + data.put("headers", "x-api-key,UAK7ed69235426c360be22bfc2bde1809b6"); + data.put("startDate", "2022-09-01"); + data.put("endDate", "2022-09-02"); + + assertEquals(200, core.send("ESH", "RQST", data).code()); + } }