diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/rest/RESTHandler.java b/src/main/java/org/texttechnologylab/project/gruppe_05_1/rest/RESTHandler.java index 7017301..bf1fc31 100644 --- a/src/main/java/org/texttechnologylab/project/gruppe_05_1/rest/RESTHandler.java +++ b/src/main/java/org/texttechnologylab/project/gruppe_05_1/rest/RESTHandler.java @@ -1,67 +1,68 @@ -package org.texttechnologylab.project.gruppe_05_1.rest; - -import freemarker.template.Configuration; -import freemarker.template.TemplateExceptionHandler; -import io.javalin.Javalin; -import io.javalin.http.staticfiles.Location; -import io.javalin.openapi.plugin.OpenApiPlugin; -import io.javalin.openapi.plugin.redoc.ReDocPlugin; -import io.javalin.rendering.template.JavalinFreemarker; -import org.texttechnologylab.project.gruppe_05_1.util.Logger; - -import java.io.File; -import java.io.IOException; - -public class RESTHandler { - public static final String TEMPLATE_DIR = "src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates"; - - public void startJavalin() { - - // Javalin Konfiguration (z.B. port) - JavalinConfig jlConfig = new JavalinConfig(); - int port = jlConfig.getPort(); - - // FreeMarker Konfiguration - Configuration fmConfig = new Configuration(Configuration.VERSION_2_3_33); - fmConfig.setDefaultEncoding("UTF-8"); - try { - fmConfig.setDirectoryForTemplateLoading(new File(TEMPLATE_DIR)); - } catch (IOException e) { - throw new RuntimeException(e); - } - fmConfig.setLogTemplateExceptions(true); - fmConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); - - // Erzeuge die Javalin app - Javalin app = Javalin.create(config -> { - config.staticFiles.add("src/main/resources/public", Location.EXTERNAL); // momentan nicht benutzt - - config.fileRenderer(new JavalinFreemarker(fmConfig)); - - config.registerPlugin(new OpenApiPlugin(pluginConfig -> { - // Define OpenAPI spec configuration - pluginConfig.withDefinitionConfiguration((version, definition) -> { - definition.withOpenApiInfo(info -> info.setTitle("Javalin OpenAPI Documentation")); - }); - })); - - config.registerPlugin(new ReDocPlugin()); - - }) - .start(port); - Logger.info("Javalin app started on http://localhost:" + port); - - // Routes - // ====== - - // Parlamentarier - app.get("/", ParlamentarierController::getAllParlamentarier); - app.get("/portfolio/{id}", ParlamentarierController::getParlamentarierDetails); - app.delete("/deleteParlamentarier", ParlamentarierController::deleteAllParlamentarier); - - // Reden - app.get("/reden/{id}", SpeechController::listSpeeches); // zeige Reden eines Parlamentariers an - app.get("/reden/{id}/{redeId}", SpeechController::showSpeech); // zeige eine bestimmte Rede des Parlamentariers an - - } -} +package org.texttechnologylab.project.gruppe_05_1.rest; + +import freemarker.template.Configuration; +import freemarker.template.TemplateExceptionHandler; +import io.javalin.Javalin; +import io.javalin.http.staticfiles.Location; +import io.javalin.openapi.plugin.OpenApiPlugin; +import io.javalin.openapi.plugin.redoc.ReDocPlugin; +import io.javalin.rendering.template.JavalinFreemarker; +import org.texttechnologylab.project.gruppe_05_1.util.Logger; + +import java.io.File; +import java.io.IOException; + +import static org.texttechnologylab.project.gruppe_05_1.Main.JAVALIN_STATIC_FILES_DIR; +import static org.texttechnologylab.project.gruppe_05_1.Main.JAVALIN_TEMPLATE_DIR; + +public class RESTHandler { + public void startJavalin() { + + // Javalin Konfiguration (z.B. port) + JavalinConfig jlConfig = new JavalinConfig(); + int port = jlConfig.getPort(); + + // FreeMarker Konfiguration + Configuration fmConfig = new Configuration(Configuration.VERSION_2_3_33); + fmConfig.setDefaultEncoding("UTF-8"); + try { + fmConfig.setDirectoryForTemplateLoading(new File(JAVALIN_TEMPLATE_DIR)); + } catch (IOException e) { + throw new RuntimeException(e); + } + fmConfig.setLogTemplateExceptions(true); + fmConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); + + // Erzeuge die Javalin app + Javalin app = Javalin.create(config -> { + config.staticFiles.add(JAVALIN_STATIC_FILES_DIR, Location.EXTERNAL); // momentan nicht benutzt + + config.fileRenderer(new JavalinFreemarker(fmConfig)); + + config.registerPlugin(new OpenApiPlugin(pluginConfig -> { + // Define OpenAPI spec configuration + pluginConfig.withDefinitionConfiguration((version, definition) -> { + definition.withOpenApiInfo(info -> info.setTitle("Javalin OpenAPI Documentation")); + }); + })); + + config.registerPlugin(new ReDocPlugin()); + + }) + .start(port); + Logger.info("Javalin app started on http://localhost:" + port); + + // Routes + // ====== + + // Parlamentarier + app.get("/", FrontEndController::getHomepage); + app.get("/members", FrontEndController::getAllParlamentarier); + app.get("/portfolio/{id}", FrontEndController::getParlamentarierDetails); + app.delete("/deleteParlamentarier", ParlamentarierController::deleteAllParlamentarier); + + // Reden + app.get("/reden/{id}", FrontEndController::listSpeeches); // zeige Reden eines Parlamentariers an + app.get("/reden/{id}/{redeId}", FrontEndController::showSpeech); // zeige eine bestimmte Rede des Parlamentariers an + } +} diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/filterForm.ftl b/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/filterForm.ftl deleted file mode 100644 index 5bd2261..0000000 --- a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/filterForm.ftl +++ /dev/null @@ -1,4 +0,0 @@ -
\ No newline at end of file diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/topicsBubbleChart.ftl b/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/topicsBubbleChart.ftl deleted file mode 100644 index 2a5f870..0000000 --- a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/topicsBubbleChart.ftl +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/src/main/resources/templates/filterForm.ftl b/src/main/resources/templates/filterForm.ftl new file mode 100644 index 0000000..0e0ba2e --- /dev/null +++ b/src/main/resources/templates/filterForm.ftl @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/memberships.ftl b/src/main/resources/templates/memberships.ftl similarity index 100% rename from src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/memberships.ftl rename to src/main/resources/templates/memberships.ftl diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/namedEntitiesSunburstChart.ftl b/src/main/resources/templates/namedEntitiesSunburstChart.ftl similarity index 100% rename from src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/namedEntitiesSunburstChart.ftl rename to src/main/resources/templates/namedEntitiesSunburstChart.ftl diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/nlp.ftl b/src/main/resources/templates/nlp.ftl similarity index 100% rename from src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/nlp.ftl rename to src/main/resources/templates/nlp.ftl diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/parlamentarier.ftl b/src/main/resources/templates/parlamentarier.ftl similarity index 80% rename from src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/parlamentarier.ftl rename to src/main/resources/templates/parlamentarier.ftl index 8d74102..b700c23 100644 --- a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/parlamentarier.ftl +++ b/src/main/resources/templates/parlamentarier.ftl @@ -1,6 +1,7 @@ +