From 40fb3989e53f57413e6dcd950b338f21decbb789 Mon Sep 17 00:00:00 2001 From: Conor Flynn Date: Mon, 13 Mar 2023 13:00:57 -0400 Subject: [PATCH] Integrate ESH-EXSR --- .../src/main/java/org/core/engine/Engine.java | 7 ++-- .../src/main/java/org/properties/Config.java | 12 +++---- .../handler/ExternalStreamHandler.java | 35 +++++++++++++++++++ .../handler/ExternalStreamManager.java | 6 +++- .../resources/requests/template.properties | 2 +- .../connections/TestAmberDataConnection.java | 1 - .../requests/TestExternalRequestManager.java | 25 +++++++++++++ 7 files changed, 76 insertions(+), 12 deletions(-) create mode 100644 DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/requests/TestExternalRequestManager.java diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/core/engine/Engine.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/core/engine/Engine.java index d5315ff0..27996b03 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/core/engine/Engine.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/core/engine/Engine.java @@ -15,9 +15,10 @@ public Engine() { // source: source of the local stream to initialize public Response processSTRT(Packet packet) { // start output processes: - Response out_response = send("OUT", "STRT"); - if(out_response.code() != 200) - return out_response; + //TODO: RE-ENABLE +// Response out_response = send("OUT", "STRT"); +// if(out_response.code() != 200) +// return out_response; // start local stream handler processes: String lsh_type = Config.getProperty("stream", "local.stream.type"); diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java index fba63efd..9ac97dc8 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/java/org/properties/Config.java @@ -23,15 +23,15 @@ public class Config { Properties stream_properties = new Properties(); stream_properties.put("general.consumer.types", "socket_consumer"); stream_properties.put("general.producer.types", "socket_producer"); - stream_properties.put("rest.socket.address", "DataEngine"); - //stream_properties.put("rest.socket.address", "localhost"); + //stream_properties.put("rest.socket.address", "DataEngine"); + stream_properties.put("rest.socket.address", "localhost"); stream_properties.put("rest.socket.port", "61100"); stream_properties.put("rest.socket.key", "rest-key-reserved"); - // stream_properties.put("output.socket.address", "defi-de.idea.rpi.edu"); - stream_properties.put("output.socket.address", "RestApp"); - // stream_properties.put("output.socket.address", "localhost"); + //stream_properties.put("output.socket.address", "RestApp"); + stream_properties.put("output.socket.address", "localhost"); stream_properties.put("output.socket.port", "61200"); - stream_properties.put("local.stream.type", "mongo_db"); + //stream_properties.put("local.stream.type", "mongo_db"); + stream_properties.put("local.stream.type", "null"); stream_properties.put("mongodb.properties.uri", "mongodb://MONGO:27017"); stream_properties.put("mongodb.database.state", "main-state-db"); stream_properties.put("mongodb.database.main", "main-db"); 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 cf1053e2..763ea1c5 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 @@ -15,6 +15,41 @@ public ExternalStreamHandler() { manager = new ExternalStreamManager(this); } + // type: type of data + public Response processEXSR(Packet packet) { + String validate; + if((validate = packet.validate("type")) != null) + return ResponseFactory.response500("ExternalStreamHandler", validate); + + return ResponseFactory.response200(String.format("%s", manager.containsType(packet.getData("type")))); + } + + // type: type of data + // url_path (opt): path of the url + // properties (opt):properties required for call + // headers (opt): headers required for call + public Response processRQST(Packet packet) { + String validate; + if((validate = packet.validate("type")) != null) + return ResponseFactory.response500("ExternalStreamHandler", validate); + + Object[] response; + + // check to see if dated + // if not + if((validate = packet.validate("startDate", "endDate")) != null) + response = manager.request(packet.getData("type"), packet.getData()); + + // if dated + else + response = manager.request(packet.getData("type"), packet.getData(), packet.getData("startDate"), packet.getData("endDate")); + + // check to see if valid + if(!((boolean)response[0])) { + + } + } + // // source: source of data // public Response processEXSR(Packet packet) { // String validate; 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 a9d28480..b56c7ecf 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 @@ -26,6 +26,10 @@ protected ExternalStreamManager(ExternalStreamHandler handler) { } } + public boolean containsType(String type) { + return manager.hasRequestFormat(type); + } + protected Object[] request(String type, HashMap data) { return request(type, data, null, null); } @@ -86,6 +90,6 @@ public void processRequest(String collection, HashMap data) { if(data == null || data.isEmpty()) return; - + // TODO: FINISH } } diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/main/resources/requests/template.properties b/DeFi-Data-Engine/DeFi Data Engine/src/main/resources/requests/template.properties index fcd8b2dc..8cd4bd82 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/main/resources/requests/template.properties +++ b/DeFi-Data-Engine/DeFi Data Engine/src/main/resources/requests/template.properties @@ -57,7 +57,7 @@ data.path= response,\ # which have specific properties and handlers. Please review documentation to get a full # list of these tags. To default with no recursive call, set this property to . # This property we will set to for a clearer example. -recursion.type= parameterized +recursion.type= rest # [OPTIONAL]: # - url.recursion.type = static diff --git a/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/connected/connections/TestAmberDataConnection.java b/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/connected/connections/TestAmberDataConnection.java index b0c41ae4..536182a5 100644 --- a/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/connected/connections/TestAmberDataConnection.java +++ b/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/connected/connections/TestAmberDataConnection.java @@ -13,7 +13,6 @@ import org.framework.router.Response; import org.junit.BeforeClass; import org.junit.Test; -import org.stream.external.connected.amberdata.AmberDataRequestHandler; public class TestAmberDataConnection { 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 new file mode 100644 index 00000000..50985f64 --- /dev/null +++ b/DeFi-Data-Engine/DeFi Data Engine/src/test/java/test/stream/external/requests/TestExternalRequestManager.java @@ -0,0 +1,25 @@ +package test.stream.external.requests; + +import static org.junit.Assert.assertEquals; + +import java.util.HashMap; + +import org.core.core.Core; +import org.junit.Test; + +public class TestExternalRequestManager { + + @Test + public void TestEXSR() { + Core core = new Core(); + + HashMap data = new HashMap(); + data.put("type", "amberdata-aave-protocol"); + + assertEquals("true", core.send("ESH", "EXSR", data).data()); + + data.put("type", "does-not-exist"); + + assertEquals("false", core.send("ESH", "EXSR", data).data()); + } +}