diff --git a/pom.xml b/pom.xml
index e1b53ba..13d4ff1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,7 @@
3.0.0-M7
3.0.16
1.6.0
+ 1.5.1
@@ -45,6 +46,11 @@
quarkus-renarde-backoffice
${renarde.version}
+
+ io.quarkiverse.renarde
+ quarkus-renarde-pdf
+ ${renarde.version}
+
io.quarkiverse.renarde
quarkus-renarde-transporter
@@ -55,6 +61,11 @@
quarkus-web-bundler
${web-bundler.version}
+
+ io.quarkiverse.ngrok
+ quarkus-ngrok
+ ${ngrok.version}
+
io.quarkus
diff --git a/src/main/java/rest/Application.java b/src/main/java/rest/Application.java
index 2ff03cd..83d4590 100644
--- a/src/main/java/rest/Application.java
+++ b/src/main/java/rest/Application.java
@@ -15,6 +15,7 @@
import org.jboss.resteasy.reactive.RestQuery;
import org.jboss.resteasy.reactive.common.jaxrs.AbstractResponseBuilder;
+import io.quarkiverse.renarde.pdf.Pdf;
import io.quarkiverse.renarde.security.ControllerWithUser;
import io.quarkiverse.renarde.util.FileUtils;
import io.quarkus.qute.CheckedTemplate;
@@ -24,6 +25,7 @@
import jakarta.transaction.Transactional;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.HttpHeaders;
import jakarta.ws.rs.core.Request;
import jakarta.ws.rs.core.Response;
@@ -504,17 +506,36 @@ public TemplateInstance schools() {
}
@Path("/speaker-banner")
- public TemplateInstance speakerBanner(@RestPath Long id) {
+ public TemplateInstance speakerBanner(@RestPath Long id, @RestPath String language) {
Speaker speaker = Speaker.findById(id);
notFoundIfNull(speaker);
+ i18n.setForCurrentRequest(language);
return Templates.speakerBanner(speaker);
}
+ @Produces(Pdf.IMAGE_PNG)
+ @Path("/speaker-banner/{id}/{language}.png")
+ public TemplateInstance speakerBannerImage(@RestPath Long id, @RestPath String language) {
+ Speaker speaker = Speaker.findById(id);
+ notFoundIfNull(speaker);
+ i18n.setForCurrentRequest(language);
+ return Templates.speakerBanner(speaker);
+ }
@Path("/sponsor-banner")
- public TemplateInstance sponsorBanner(@RestPath Long id) {
+ public TemplateInstance sponsorBanner(@RestPath Long id, @RestPath String language) {
+ Sponsor sponsor = Sponsor.findById(id);
+ notFoundIfNull(sponsor);
+ i18n.setForCurrentRequest(language);
+ return Templates.sponsorBanner(sponsor);
+ }
+
+ @Produces(Pdf.IMAGE_PNG)
+ @Path("/sponsor-banner/{id}/{language}.png")
+ public TemplateInstance sponsorBannerImage(@RestPath Long id, @RestPath String language) {
Sponsor sponsor = Sponsor.findById(id);
notFoundIfNull(sponsor);
+ i18n.setForCurrentRequest(language);
return Templates.sponsorBanner(sponsor);
}
diff --git a/src/main/resources/templates/Application/speaker.html b/src/main/resources/templates/Application/speaker.html
index b49e35a..d2692d7 100644
--- a/src/main/resources/templates/Application/speaker.html
+++ b/src/main/resources/templates/Application/speaker.html
@@ -1,5 +1,19 @@
{#include main.html}
{#title}{speaker} - {m:views.application.speaker.title}{/title}
+{#twitterCard}
+
+
+
+
+
+
+{/twitterCard}