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}