From ec427a70b8d75b5df02c27d038a8d238ac2fdae3 Mon Sep 17 00:00:00 2001 From: rdkartono Date: Fri, 15 Nov 2024 14:13:38 +0700 Subject: [PATCH] First commit --- .idea/libraries/io_javalin.xml | 44 ++++++++++--------- src/ProtegeGX/ProtegeGX.java | 16 +++++++ src/Web/WebServer.java | 79 +++++++++++++++------------------- 3 files changed, 74 insertions(+), 65 deletions(-) diff --git a/.idea/libraries/io_javalin.xml b/.idea/libraries/io_javalin.xml index efa907e..d7ab6e0 100644 --- a/.idea/libraries/io_javalin.xml +++ b/.idea/libraries/io_javalin.xml @@ -1,28 +1,30 @@ - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + + diff --git a/src/ProtegeGX/ProtegeGX.java b/src/ProtegeGX/ProtegeGX.java index e71b189..748ab15 100644 --- a/src/ProtegeGX/ProtegeGX.java +++ b/src/ProtegeGX/ProtegeGX.java @@ -1,4 +1,20 @@ package ProtegeGX; +import lombok.Setter; + +import java.util.function.Consumer; + +@SuppressWarnings("unused") public class ProtegeGX { + @Setter private Consumer onCardRead; + + private void updateCardRead(String data) { + if (onCardRead != null) { + ProtegeData protegeData = new ProtegeData(); + onCardRead.accept(protegeData); + } + } + public void Disconnect() { + throw new UnsupportedOperationException("Not supported yet."); + } } diff --git a/src/Web/WebServer.java b/src/Web/WebServer.java index c94616a..2091e71 100644 --- a/src/Web/WebServer.java +++ b/src/Web/WebServer.java @@ -2,6 +2,7 @@ package Web; import com.google.gson.Gson; import io.javalin.Javalin; +import io.javalin.http.staticfiles.Location; import lombok.Setter; import java.util.function.Function; @@ -31,50 +32,40 @@ public class WebServer { Javalin app; public WebServer(){ app = Javalin.create(config -> { - config.useVirtualThreads = true; - config.staticFiles.add("/Web"); - config.router.apiBuilder(()->{ - // API for AAS Mini - path("aasmini", ()->{ - //TODO implement API for AAS Mini - get(ctx -> ctx.result("AAS Mini API")); - post(ctx -> { - try{ - WebRequest request = gson.fromJson(ctx.body(), WebRequest.class); - WebResponse response = ProcessAAS(request); - if (response!=null){ - ctx.result(gson.toJson(response)); - } else { - ctx.status(400); - ctx.result("No response from AAS Mini"); - } - } catch(Exception e){ - ctx.status(400); - ctx.result("Exception: "+e.getMessage()); - } - }); - }); - // API for ProtegeGX - path("protegegx", ()->{ - //TODO implement API for ProtegeGX - get(ctx -> ctx.result("ProtegeGX API")); - post(ctx -> { - try{ - WebRequest request = gson.fromJson(ctx.body(), WebRequest.class); - WebResponse response = ProcessProtegeGX(request); - if (response!=null){ - ctx.result(gson.toJson(response)); - } else { - ctx.status(400); - ctx.result("No response from ProtegeGX"); - } - } catch(Exception e){ - ctx.status(400); - ctx.result("Exception: "+e.getMessage()); - } - }); - }); - }); + config.addStaticFiles("/Web", Location.EXTERNAL); + }); + app.get("/", ctx -> ctx.result("Hello World")); + app.get("/aasmini", ctx -> ctx.result("AAS Mini API")); + app.get("/protegegx", ctx -> ctx.result("ProtegeGX API")); + app.post("/aasmini", ctx ->{ + try{ + WebRequest request = gson.fromJson(ctx.body(), WebRequest.class); + WebResponse response = ProcessAAS(request); + if (response!=null){ + ctx.result(gson.toJson(response)); + } else { + ctx.status(400); + ctx.result("No response from AAS Mini"); + } + } catch(Exception e){ + ctx.status(400); + ctx.result("Exception: "+e.getMessage()); + } + }); + app.post("/protegegx", ctx ->{ + try{ + WebRequest request = gson.fromJson(ctx.body(), WebRequest.class); + WebResponse response = ProcessProtegeGX(request); + if (response!=null){ + ctx.result(gson.toJson(response)); + } else { + ctx.status(400); + ctx.result("No response from ProtegeGX"); + } + } catch(Exception e){ + ctx.status(400); + ctx.result("Exception: "+e.getMessage()); + } }); }