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 @@ -
- Name : - -
\ 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 @@ +
+ Name : + +
\ 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 @@ + Abgeordnete Übersicht @@ -13,10 +14,9 @@ } +<#include "header.ftl"> -
-

Abgeordnete (alphabetisch sortiert)

-
+

Abgeordnete (alphabetisch sortiert)

<#include "filterForm.ftl"> @@ -41,9 +41,10 @@ - Zurück zum Anfang + Zurück zum Anfang
+<#include "footer.ftl"> diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/parlamentarierAttribut.ftl b/src/main/resources/templates/parlamentarierAttribut.ftl similarity index 100% rename from src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/parlamentarierAttribut.ftl rename to src/main/resources/templates/parlamentarierAttribut.ftl diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/parlamentarierDetails.ftl b/src/main/resources/templates/parlamentarierDetails.ftl similarity index 93% rename from src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/parlamentarierDetails.ftl rename to src/main/resources/templates/parlamentarierDetails.ftl index 63adf8d..2e75567 100644 --- a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/parlamentarierDetails.ftl +++ b/src/main/resources/templates/parlamentarierDetails.ftl @@ -1,6 +1,7 @@ + ${p.vorname} ${p.nachname} (${p.partei}) @@ -12,6 +13,7 @@ } +<#include "header.ftl">

${p.vorname} ${p.nachname} (${p.partei})

@@ -100,4 +102,5 @@ +<#include "footer.ftl"> diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/persoenlicheDaten.ftl b/src/main/resources/templates/persoenlicheDaten.ftl similarity index 100% rename from src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/persoenlicheDaten.ftl rename to src/main/resources/templates/persoenlicheDaten.ftl diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/posBarChart.ftl b/src/main/resources/templates/posBarChart.ftl similarity index 99% rename from src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/posBarChart.ftl rename to src/main/resources/templates/posBarChart.ftl index 2e6122d..26c3e36 100644 --- a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/posBarChart.ftl +++ b/src/main/resources/templates/posBarChart.ftl @@ -1,4 +1,3 @@ - - -

Rede von ${s.speakerName} <#if s.fraction??> (${s.fraction})

-

@@ -40,4 +38,5 @@ +<#include "footer.ftl"> \ No newline at end of file diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/speechContent.ftl b/src/main/resources/templates/speechContent.ftl similarity index 100% rename from src/main/java/org/texttechnologylab/project/gruppe_05_1/website/templates/speechContent.ftl rename to src/main/resources/templates/speechContent.ftl diff --git a/src/main/resources/templates/topicsBubbleChart.ftl b/src/main/resources/templates/topicsBubbleChart.ftl new file mode 100644 index 0000000..883016d --- /dev/null +++ b/src/main/resources/templates/topicsBubbleChart.ftl @@ -0,0 +1,52 @@ + + + + +