11package hexlet .code ;
22
3+ import gg .jte .ContentType ;
4+ import gg .jte .TemplateEngine ;
5+ import gg .jte .resolve .ResourceCodeResolver ;
6+ import hexlet .code .dto .MainPage ;
37import hexlet .code .repository .BaseRepository ;
48
59import hexlet .code .util .NamedRoutes ;
1620import java .nio .charset .StandardCharsets ;
1721import java .sql .SQLException ;
1822import java .time .Instant ;
23+ import java .util .Objects ;
1924import java .util .stream .Collectors ;
2025
26+ import static io .javalin .rendering .template .TemplateUtil .model ;
27+
2128public class App {
2229 private static final Logger LOG = LoggerFactory .getLogger (App .class );
2330
@@ -43,6 +50,13 @@ private static String getDatabaseUrl() {
4350 "jdbc:h2:mem:project;DB_CLOSE_DELAY=-1;" );
4451 }
4552
53+ private static TemplateEngine createTemplateEngine () {
54+ ClassLoader classLoader = App .class .getClassLoader ();
55+ ResourceCodeResolver codeResolver = new ResourceCodeResolver ("templates" , classLoader );
56+ TemplateEngine templateEngine = TemplateEngine .create (codeResolver , ContentType .Html );
57+ return templateEngine ;
58+ }
59+
4660 private static Javalin getApp () throws SQLException , IOException {
4761 var hikariConfig = new HikariConfig ();
4862 hikariConfig .setJdbcUrl (getDatabaseUrl ());
@@ -62,12 +76,18 @@ private static Javalin getApp() throws SQLException, IOException {
6276
6377 var app = Javalin .create (config -> {
6478 config .bundledPlugins .enableDevLogging ();
65- config .fileRenderer (new JavalinJte ());
79+ config .fileRenderer (new JavalinJte (createTemplateEngine () ));
6680 });
6781
6882 app .before (ctx -> LOG .info (Instant .now ().toString ()));
6983
70- app .get (NamedRoutes .rootPath (), ctx -> ctx .result ("Hello World" ));
84+ app .get (NamedRoutes .rootPath (), ctx -> {
85+ String currentUser = Objects .requireNonNullElse (
86+ ctx .sessionAttribute ("currentUser" ),"Гость"
87+ );
88+ var page = MainPage .of (currentUser );
89+ ctx .render ("index.jte" , model ("page" , page ));
90+ });
7191
7292 return app ;
7393 }
0 commit comments